我很难理解为什么这行不通:
@if ((Model.doaFormGroupDocuments.Count != 0) || (Model.doaFormGroupDocuments != null))
{
@for(var i = 0; i < Model.doaFormGroupDocuments.Count; i++)
{
@Html.HiddenFor(model => model.doaFormGroupDocuments[i].Checked)
@Html.HiddenFor(model => model.doaFormGroupDocuments[i].Id)
@Html.HiddenFor(model => model.doaFormGroupDocuments[i].Name)
}
}
我在 for 循环旁边的 @ 下收到一条红色错误行。 HTML 中不允许这样做吗?
最佳答案
John,这看起来像 ASP.NET MVC,我假设情况就是如此。
发生的情况是,只要您有 @
,您就有两个上下文:HTML 和 Razor。当您有 HTML 标记 <text>
时,它会切换到 Razor 上下文。或@:
它切换 HTML 上下文。
Visual Studio 正在提示,因为您位于 razor 上下文中(来自 if 语句),并且尝试使用 @for 再次进入 razor 上下文,您只需删除 for 循环之前的 @ 即可。另请注意,for 循环内的三个辅助调用将被正确处理,因为它知道您在那里返回 IHtmlStrings。
关于c# - HTML 中 if block 内的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27064213/