Hi rani,
Check this example. Now please take its reference and correct your code.
Controller
public class HomeController : Controller
{
public IActionResult Index()
{
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.AddRange(new System.Data.DataColumn[] {
new System.Data.DataColumn("Year", typeof(string)),
new System.Data.DataColumn("ToBill",typeof(decimal)),
new System.Data.DataColumn("Billed",typeof(decimal))});
dt.Rows.Add(2011, 1000, 500);
dt.Rows.Add(2012, 2500, 100);
dt.Rows.Add(2013, 100, 50);
dt.Rows.Add(2014, 1000, 500);
dt.Rows.Add(2015, 400, 200);
dt.Rows.Add(2016, 3000, 2000);
dt.Rows.Add(2017, 2500, 100);
dt.Rows.Add(2018, 100, 50);
dt.Rows.Add(2019, 2500, 100);
dt.Rows.Add(2020, 100, 50);
dt.Columns.Add("Percentage");
dt.Columns.Add("Total");
for (int i = 0; i < dt.Rows.Count; i++)
{
System.Data.DataRow dr = dt.Rows[i];
dr["Percentage"] = Math.Round((Convert.ToDecimal(dr["Billed"]) / Convert.ToDecimal(dr["ToBill"])) * 100);
dr["Total"] = Convert.ToDecimal(dr["ToBill"]) + Convert.ToDecimal(dr["Billed"]);
}
ViewBag.Data = dt;
return View();
}
}
View
@using System.Data;
@addTagHelper*, Microsoft.AspNetCore.Mvc.TagHelpers
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<table>
<tr>
@for (int column = 0; column < ViewBag.Data.Columns.Count; column++)
{
<th>@ViewBag.Data.Columns[column].ColumnName</th>
}
</tr>
@for (int row = 0; row < ViewBag.Data.Rows.Count; row++)
{
<tr>
@for (int column = 0; column < ViewBag.Data.Columns.Count; column++)
{
<td>@ViewBag.Data.Rows[row][column]</td>
}
</tr>
}
</table>
</body>
</html>
Screenshot
