Asp.net mvc Can';我不明白我的强类型视图的razor语法

Asp.net mvc Can';我不明白我的强类型视图的razor语法,asp.net-mvc,razor,Asp.net Mvc,Razor,我有一个强类型视图,当id被传递给我的控制器操作方法时,我试图显示一个模型 我也在尝试构建一个到每个模型的链接 在开始我的foreach之前,我有一个I=0,然后我尝试使用I++将它增加1。问题是i++部分不起作用——我的链接中的id总是为零。为什么? 有人能帮忙吗 @{ var i = 0; foreach (var item in Model) { <tr> <td> @Html.DisplayF

我有一个强类型视图,当
id
被传递给我的控制器操作方法时,我试图显示一个模型

我也在尝试构建一个到每个模型的链接

在开始我的
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>
        }
    }
@{
var i=0;
foreach(模型中的var项目)
{
@DisplayFor(modeleItem=>item.Title)
@DisplayFor(modelItem=>item.Content)
@ActionLink(“详细信息”,“详细信息”,新的{id=i})
i++;
}
}

Razor尽最大努力区分代码和标记/html/text,这通常并不容易。在这种情况下,
i++
被视为文本

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

如果发生这种情况,只需在语句周围放置
@{…}
,如下所示:

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

@ActionLink(“详细信息”,“详细信息”,新的{id=i})
@{
i++;
}

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

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

如果发生这种情况,只需在语句周围放置
@{…}
,如下所示:

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

@ActionLink(“详细信息”,“详细信息”,新的{id=i})
@{
i++;
}

在结束后将
i++;
移动到
您的
i++
是否确实被认为是代码而不是标记??尝试将其包装在
@()
中,例如
@(i++)
对不起,我的意思是
@{/code>-
@()
我相信你可能不想在结束后移动
I++;
的HTML输出
I++
是你的
I++
肯定被认为是代码而不是标记??试着用
@()
包装它,例如
@(I++)
对不起,我的意思是
{}
-这个
@()
我认为输出到HTML可能是您不想要的