У меня есть база данных, состоящая из таблицы, информацию которой я хочу распечатать в браузере. Итак, что я сделал:
In _Layout.cshtml:
<li class="nav-item">
<a class="nav-link" href=@Url.Action("ViewPage1","Billing")>Records</a>
</li>
Страница ViewPage1.cshtml содержит:
<body>
<div>
<a href=@Url.Action("Record_Page_Load", "Billing")>Print Records</a>
</div>
</body>
Который затем вызывает функции контроллера:
public DataTable GetRecords()
{
string constr = ConfigurationManager.ConnectionStrings["BOConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT TOP 10 * FROM Article"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
return dt;
}
}
}
}
}
public void Record_Page_Load()
{
DataTable dt = this.GetRecords();
StringBuilder html = new StringBuilder();
//html.Append("<html><body>");
html.Append("<table border = '1'>");
html.Append("<tr>");
foreach (DataColumn column in dt.Columns)
{
html.Append("<th>");
html.Append(column.ColumnName);
html.Append("</th>");
}
html.Append("</tr>");
foreach (DataRow row in dt.Rows)
{
html.Append("<tr>");
foreach (DataColumn column in dt.Columns)
{
html.Append("<td>");
html.Append(row[column.ColumnName]);
html.Append("</td>");
Debug.Print(Convert.ToString(row[column.ColumnName]));
}
html.Append("</tr>");
}
html.Append("/table");
//html.Append("</body></html>");
}
public ActionResult ViewPage1()
{
return View("ViewPage1");
}
После нажатия кнопки «Печать записей» ничего не печатается.
Чтобы убедиться, что DataTable действительно заполняется, я попытался напечатать записи в окне вывода Visual Studio. Данные печатались. Итак, что здесь не так?