如何使用 ViewData 在 MVC 中加载 HTML 表?
Posted
技术标签:
【中文标题】如何使用 ViewData 在 MVC 中加载 HTML 表?【英文标题】:How to load HTML Table in MVC using ViewData? 【发布时间】:2013-11-25 07:41:53 【问题描述】:我的视图中有下表:
<table id="tblHelpRow">
<thead>
<tr class="title">
<th>
1
</th>
<th>
2
</th>
<th>
3
</th>
<th>
4
</th>
</tr>
</thead>
<tbody id="helpRowBody">
@ ViewData["MattersTable"].ToString();
</tbody>
</table>
在我的控制器中,我为此表创建了一个主体并添加到 DataView。我通过从另一个重定向并传递我的 DataTable 来到达这个控制器。实际上我有一点不同,但在这里我写得尽可能简单以显示问题:
public ActionResult Matters(DataTable source)
string result = "";
foreach(DataRow dr in source.Rows)
result += "<tr>" +
"<td>" + dr["1"] + "</td>" +
"<td>" + dr["2"] + "</td>" +
"<td>" + dr["3"] + "</td>" +
"<td>" + dr["4"] + "</td>" +
"</tr>";
ViewData["MattersTable"] = result;
return View();
但结果我得到了带有列标题但里面没有内容的页面...源页面告诉我 tbody 里面什么都没有...
【问题讨论】:
@ViewData["MattersTable"]
(没有括号也没有分号)怎么样?
我在表格之前得到了整个纯字符串,然后是只有标题的空表格......
是的,您还需要用 html.Raw() 包装它,因为您传递的是原始 html 字符串...@Html.Raw(ViewData["MattersTable"])
如何使它成为局部视图而不是连接字符串服务器端?
作为旁注,并同意 adt,请不要对生产代码这样做;)
【参考方案1】:
试试这个:
<table id="tblHelpRow">
<thead>
<tr class="title">
<th>
1
</th>
<th>
2
</th>
<th>
3
</th>
<th>
4
</th>
</tr>
</thead>
<tbody id="helpRowBody">
@Html.Raw(ViewData["MattersTable"])
</tbody>
</table>
【讨论】:
以上是关于如何使用 ViewData 在 MVC 中加载 HTML 表?的主要内容,如果未能解决你的问题,请参考以下文章