无法为我的强类型视图找出剃刀语法

时间:2016-11-24 21:34:10

标签: asp.net-mvc razor

我有一个强类型视图,当我将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>
        }
    }

1 个答案:

答案 0 :(得分:2)

Razor尽力区分代码与标记/ html / text,这一般不容易。在这种情况下,i++被视为文本。

原因是foreach {部分后面有标签,导致阅读模式切换到标记/ html /文本。在该模式下,只有@...@{...}被识别为代码,其他所有内容都被视为标记/ html / text。

如果发生这种情况,只需在您的陈述中加上@{ ... },如下所示:

<td>
    @Html.ActionLink("Details", "Details", new { id = i }) 
    @{
        i++;
    }
</td>