我刚刚开始使用mvc并拥有以下代码:
@model AzureDemo.Models.User
@{
ViewBag.Title = "Interests";
}
<h2>Interests</h2>
<p>
@Html.ActionLink("Logout", "Logout")
</p>
<table>
<tr>
<th>
Interests
</th>
</tr>
@foreach (var interest in Model.Interests) {
<tr>
<td>
@Html.Display(interest)
</td>
//Tried like this
<td>
@Html.Display("id", interest.ToString())
</td>
</tr>
}
</table>
User中的Interests属性只是一个字符串列表。我正在尝试在用户的表格中显示每个兴趣。我也尝试在Html.Display中添加类似“test”的字符串,或尝试使用ToString()但仍然没有。
答案 0 :(得分:4)
我建议您使用显示模板并删除视图中的所有foreach循环:
@model AzureDemo.Models.User
@{
ViewBag.Title = "Interests";
}
<h2>Interests</h2>
<p>
@Html.ActionLink("Logout", "Logout")
</p>
<table>
<thead>
<tr>
<th>
Interests
</th>
</tr>
</thead>
<tbody>
@Html.DisplayFor(x => x.Interests)
</tbody>
</table>
然后定义相应的显示模板,该模板将自动为Interests集合(~/Views/Shared/DisplayTemplates/Interest.cshtml
)的每个元素呈现:
@model AzureDemo.Models.Interest
<tr>
<td>
@Html.DisplayFor(x => x.Text)
</td>
</tr>
答案 1 :(得分:2)
您可以直接使用此类型号
@foreach (var interest in Model.Interests) {
<tr>
<td>
@interest
</td>
// or this
<td>
@interest.ToString()
</td>
</tr>
}
或者如果您在视图中显示html代码,则更安全
@foreach (var interest in Model.Interests) {
<tr>
<td>
@Html.Raw(interest)
</td>
</tr>
}
还要感谢这个机会;)