我有一个强类型视图,当我将id
传递给我的Controller操作方法时,我试图显示模型。
我正在尝试构建每个模型的链接。
出于foreach
开头之前的目的,我有i=0
,然后我尝试使用i++
将其增加1。问题是i++
部分无法正常工作 - 我的链接中始终为id
。为什么呢?
有人可以帮忙吗?
@{
var i = 0;
foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Content)
</td>
<td>
@Html.ActionLink("Details", "Details", new { id = i })
i++;
</td>
</tr>
}
}
答案 0 :(得分:2)
Razor尽力区分代码与标记/ html / text,这一般不容易。在这种情况下,i++
被视为文本。
原因是foreach {
部分后面有标签,导致阅读模式切换到标记/ html /文本。在该模式下,只有@...
,@{...
或}
被识别为代码,其他所有内容都被视为标记/ html / text。
如果发生这种情况,只需在您的陈述中加上@{ ... }
,如下所示:
<td>
@Html.ActionLink("Details", "Details", new { id = i })
@{
i++;
}
</td>