Asp.net mvc 调用ViewData时不显示任何数据
所以我试着在控制器上做表格这是我输入的代码Asp.net mvc 调用ViewData时不显示任何数据,asp.net-mvc,Asp.net Mvc,所以我试着在控制器上做表格这是我输入的代码 DataTable table = new DataTable(); Table.Columns.Add("Nama", typeof(string)); Table.Columns.Add("Nama2", typeof(string)); Table.Rows.Add("Manama", "Jeff"); Table.Rows.Add("Damn", "Daniel");
DataTable table = new DataTable();
Table.Columns.Add("Nama", typeof(string));
Table.Columns.Add("Nama2", typeof(string));
Table.Rows.Add("Manama", "Jeff");
Table.Rows.Add("Damn", "Daniel");
ViewData["Test"] = Table;
@ViewData["Test"] // when i type this it doesnt show anything on new page when i run it
您遇到的问题是@ViewData[Test]隐式调用DataTable对象的ToString,这将返回System.Data.DataTable的完全限定名,而不是其内容行和列。如果要从中创建表,应创建如下HTML结构:
@using System.Data
@{
var table = ViewData["Test"] as DataTable;
}
<table>
<thead>
<tr>
@foreach (DataColumn col in table.Columns)
{
<th>@col.Caption</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in table.Rows)
{
<tr>
@foreach (var cell in row.ItemArray)
{
<td>@cell.ToString()</td>
}
</tr>
}
</tbody>
</table>
看法
包含如何在视图页面内创建表的实时示例
相关问题:
请注意,ViewData包含DataTable,使用@ViewData[Test]将返回完全限定的名称,例如System.Data.DataTable,而不是其内容,因为ToString是隐式调用的。您需要将DataTable作为IEnumerable进行迭代以获得其结果。
DataTable table = new DataTable();
table.Columns.Add("Nama", typeof(string));
table.Columns.Add("Nama2", typeof(string));
table.Rows.Add("Manama", "Jeff");
table.Rows.Add("Damn", "Daniel");
return View(table);
@using System.Data
<table>
<thead>
<tr>
@foreach (DataColumn col in Model.Columns)
{
<th>@col.Caption</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@foreach (var cell in row.ItemArray)
{
<td>@cell.ToString()</td>
}
</tr>
}
</tbody>
</table>