First, you have to install a package called RazorPDF for MVC through Manage Nuget Packages.

I have created a class called MarksCard.cs,

  1. public class MarksCard
  2. {
  3. public int RollNo { get; set; }
  4. public string Subject { get; set; }
  5. public int FullMarks { get; set; }
  6. public int Obtained { get; set; }
  7. }
Now create a HomeController.cs

And add a namespace.
  1. using RazorPDF;
There are two Action Methods.
  1. public ActionResult Index()
  2. {
  3. var studentMarks = new List < MarksCard > ()
  4. {
  5. new MarksCard
  6. {
  7. RollNo = 101, Subject = "C#", FullMarks = 100, Obtained = 90
  8. },
  9. new MarksCard
  10. {
  11. RollNo = 102, Subject = "asp.net", FullMarks = 100, Obtained = 80
  12. },
  13. new MarksCard
  14. {
  15. RollNo = 103, Subject = "MVC", FullMarks = 100, Obtained = 100
  16. },
  17. new MarksCard
  18. {
  19. RollNo = 104, Subject = "SQL Server", FullMarks = 100, Obtained = 75
  20. },
  21. };
  22. return View("Index", studentMarks);
  23. }
  24. public ActionResult DownloadPdf()
  25. {
  26. var studentMarks = new List < MarksCard > ()
  27. {
  28. new MarksCard
  29. {
  30. RollNo = 101, Subject = "C#", FullMarks = 100, Obtained = 90
  31. },
  32. new MarksCard
  33. {
  34. RollNo = 102, Subject = "asp.net", FullMarks = 100, Obtained = 80
  35. },
  36. new MarksCard
  37. {
  38. RollNo = 103, Subject = "MVC", FullMarks = 100, Obtained = 100
  39. },
  40. new MarksCard
  41. {
  42. RollNo = 104, Subject = "SQL Server", FullMarks = 100, Obtained = 75
  43. },
  44. };
  45. return new PdfResult(studentMarks, "Index");
  46. }
View
  1. @model IEnumerable
  2. <RazorPDFDemo.Models.MarksCard>
  3. @{
  4. Layout = null;
  5. }
  6. <!DOCTYPE html>
  7. <html>
  8. <body>
  9. <h3>Using RazorPDF</h3>
  10. <table border="2" width='500' bordercolor="Green">
  11. <tr>
  12. <td colspan="3" bgcolor="LightBlue" align="center" valign="top">Marks Sheet 2016</td>
  13. </tr>
  14. <tr>
  15. <td>
  16. @{
  17. var rollNumber = Model.Select(z => z.RollNo).Take(1).ToArray();
  18. }
  19. Mayank Sharma
  20. <br />
  21. RollNo:@rollNumber[0]
  22. </td>
  23. <td colspan="2" >
  24. <img src="@Server.MapPath("~/Images/ron.jpg")" width="100" height="100"/>
  25. </td>
  26. </tr>
  27. <tr>
  28. <td bgcolor="lightblue">
  29. @Html.DisplayNameFor(model => model.Subject)
  30. </td>
  31. <td bgcolor="lightblue">
  32. @Html.DisplayNameFor(model => model.FullMarks)
  33. </td>
  34. <td bgcolor="lightblue">
  35. @Html.DisplayNameFor(model => model.Obtained)
  36. </td>
  37. </tr>
  38. @{
  39. int total = 0;
  40. }
  41. @foreach (var item in Model)
  42. {
  43. <tr>
  44. <td>
  45. @Html.DisplayFor(x => item.Subject)
  46. </td>
  47. <td>
  48. @Html.DisplayFor(modelItem => item.FullMarks)
  49. </td>
  50. <td>
  51. @Html.DisplayFor(modelItem => item.Obtained)
  52. </td>
  53. </tr>
  54. total += item.Obtained;
  55. }
  56. <tr>
  57. <td></td>
  58. <td>
  59. <strong>
  60. <font color="RED">Total</font>
  61. </strong>
  62. </td>
  63. <td>@total
  64. </td>
  65. </tr>
  66. </table>
  67. </body>
  68. </html>
  69. <br />
  70. <br />
  71. <a href="@Url.Action("DownloadPdf","Home")"> Download PDF</a>
Here is the output as PDF,