asp.net - Razor 缺少闭合支架/标签

标签 asp.net asp.net-mvc-3 razor

在我看来,Razor 告诉我,我的 Foreach 循环缺少右大括号 ( } ) 它还告诉我我的<div class="row">缺少结束标记。

 @{int spanCounter = 0;}
 @foreach (var item in Model)
 {
     if(spanCounter == 0)
     {
        <div class="row">
     }
     spanCounter += item.Span;

     <div class="span@(item.Span)">
       @item.Html
     </div>

     @if(spanCounter == 12)
     {
       @spanCounter = 0

       </div>
     }    
 }

我见过类似的问题,但他们似乎关注的是 Razor 期望正确分层的事实。即,这是非法的:

if(condition)
{
    <foo>
}
else
{
    <foo>
}
</foo>

更新 该模型是 Html 内容“ block ”的列表

为了更清楚一点,我想在 <div></div> 中写出多个 block ( <div></div> ) “行”

  1. 如果 spanCounter 为 0 BEGIN 行。
  2. 写入内容:<div></div>阻塞直到达到最大跨度宽度(12)
  3. 结束行,重置计数器,返回到 1。

最佳答案

还有另一种解决方法可以避免重复代码:

if(condition)
{
    @:<foo>
}
else
{
    @:<foo>
}
</foo>

关于asp.net - Razor 缺少闭合支架/标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12244349/

相关文章:

asp.net-mvc - 如何在 .Net Core 2.0 的 Razor 页面中检查用户是否通过身份验证

c# - 发布构建复制配置文件到另一个项目

asp.net-mvc-3 - 如何在 MVC Razor View 中使用具有多个输入的内联模板

asp.net-mvc-3 - MVC3 Webgrid的服务器端分页

asp.net-mvc-3 - 关闭包含 ASP MVC Ajax 表单的模式窗口

content-type - 如何设置 WebMatrix/Razor 响应的内容类型?

c# - MVC 5 Razor View 未将 bool 绑定(bind)到输入

c# - 使用 asp 服务器控件 DataList 时,如何将 Eval 数据绑定(bind)表达式绑定(bind)到 Label?

c# - 通过 javascript 启用/禁用 asp.net 复选框

asp.net - 禁用单个控件的事件验证,是否可能?