我想在我的 Razor 视图中执行此操作:
@foreach (Customer cust in Model.Customers)
{
<tr data-custid="@customer.GetIdAsText()">
@Html.RenderPartial("CustomerListTableRow", cust)
</tr>
}
据我了解,这应该有效。foreach 块包含一个 <tr>...</tr>。在里面,它处于标记模式,所以我需要 @ 来切换到 C# 模式。问题是显然变量 cust 丢失了它的类型信息(和值?),所以它抱怨它不能将 void 转换为 RenderPartial 期望的对象。
我让它像这样工作:
@foreach (Customer cust in Model.Customers)
{
@:<tr data-custid="@customer.GetIdAsText()">
Html.RenderPartial("CustomerListTableRow", cust);
@:</tr>
}
但是除了看起来很丑之外,如果我让 VS 美化代码,它会像这样搞砸:
@foreach (Customer cust in Model.Customers)
{
@:<tr data-custid="@customer.GetIdAsText()">
Html.RenderPartial("CustomerListTableRow", cust); @:</tr> }
不错吧?:-)
那么,为什么第一个解决方案不起作用?我应该怎么写?