asp.net-mvc - Razor .NET 无法识别代码脚本

标签 asp.net-mvc razor

我认为有以下代码。在 for 语句内,我想将父 div 中的每 4 个项目分组。 If(counter == 0),我渲染父级 div,然后渲染四个项目,然后如果它是 4 个项目组中的最后一个,我关闭父级div

但是,看起来 razor 希望我在第一个 if 中关闭父 div。看来 Razor 不够聪明,无法知道父结束标签位于第二个标签内(如果下面有一些行,或者我可能遗漏了某些内容)。有什么想法可以解决这个问题吗?

 @{int counter = 0; }
 @for (int i = 0; i < Model.UserManagedRoles.Count; i++){
      string roleName = Model.UserManagedRoles[i].Name.Replace(" ", "").Trim();
      string id = string.Format("chk{0}", roleName);

      if (counter == 0)
      {
           <div  class="rowCapture divUserRoles">
      }

      <div class="hzStackSmall">
      <input type="checkbox" id="@id" name="@id" value="@roleName" />@Model.UserManagedRoles[i].Name</div>

      if(counter == 3 || i == Model.UserManagedRoles.Count) {
           </div>
      }

      counter++;
      if (counter == 4)
      {
           counter = 0;
      }
 }

最佳答案

您必须使用@: <div class="hzStackSmall">使用 Razor 引擎打印 HTML 代码。这会有帮助吗?

我强烈推荐this来自 ScottGu 博客的关于 Razor 引擎的教程。

 @{int counter = 0; }

 @for (int i = 0; i < Model.UserManagedRoles.Count; i++)
 {
    string roleName = Model.UserManagedRoles[i].Name.Replace(" ", "").Trim();
    string id = string.Format("chk{0}", roleName);

    if (counter == 0)
    {
       @:<div  class="rowCapture divUserRoles">
    }

    @:<div class="hzStackSmall">
    @:<input type="checkbox" id="@id" name="@id" value="@roleName" />@Model.UserManagedRoles[i].Name</div>

    if(counter == 3 || i == Model.UserManagedRoles.Count) {
       @:</div>
    }

    counter++;
    if (counter == 4)
    {
       counter = 0;
    }
 }

关于asp.net-mvc - Razor .NET 无法识别代码脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9386917/

相关文章:

css - css 文件的动态加载在 IE 中不起作用

c# - MVC3 (Razor) 单选按钮检查

c# - 输入提交与输入按钮

asp.net-mvc - VS2013无法编译ASP.NET MVC5 View

c# - 单元测试 Mvc.Compare 属性错误地返回模型 isValid = true

c# - 将下拉列表中的时间值添加到 DatePicker 值

asp.net-mvc - 将服务器端包含转换为 Razor

asp.net-mvc-3 - 有没有办法通过 AJAX 将 "C#"对象传递给 Controller ​​?

asp.net-mvc - 在 F# 中设置基本成员值

javascript - 使用 JavaScript json 文件初始化 C# 字典的正确方法?