【问题标题】:MVC For..Each how to set class conditionally? [duplicate]MVC For..Each 如何有条件地设置类? [复制]
【发布时间】:2018-04-06 15:41:22
【问题描述】:

我在 MVC 视图中有一个列表的 For...Each 循环。我需要做的是查看一个属性以确定记录是否已被标记为已删除,然后我会在表行上设置 Bootstrap 类的“危险”。

我可以查看属性并为每个条件编写表格行,但这似乎是额外的工作。如果我使用以下代码 Razor 不喜欢它看不到初始标签的事实。有关如何干净地完成此任务的任何建议?

@foreach (var item in Model.MyList)
{
    if (item.IsDeleted == 1)
    {
        @Html.Raw("<tr class='danger'>")
    }
    else
    {
        @Html.Raw("<tr>")
    }
        <td>@item.FirstName</td>
        <td>@item.LastName</td>
        <td>@item.EmployeeId</td>
    </tr>
}

【问题讨论】:

    标签: asp.net-mvc twitter-bootstrap razor


    【解决方案1】:

    这是解决您问题的更简单方法

    @foreach (var item in Model.MyList)
    {
        <tr class="@(item.IsDeleted ? "danger" : string.Empty) ">  
            <td>@item.FirstName</td>
            <td>@item.LastName</td>
            <td>@item.EmployeeId</td>
        </tr>
    }
    

    【讨论】:

    • 感谢您的样品。我本可以发誓我尝试过这样的事情,但没有奏效。我可能会将“@”符号放在错误的位置。无论哪种方式,我都遵循了这个并得到了我需要的东西。
    【解决方案2】:

    这样的事情怎么样?

     @foreach (var item in Model.MyList)
        {
                <tr class="@(Model.deleted ? "danger" : "")"> 
                <td>@item.FirstName</td>
                <td>@item.LastName</td>
                <td>@item.EmployeeId</td>
            </tr>
        }
    

    【讨论】:

      【解决方案3】:

      您可以通过这种方式简单地使用它

      @foreach (var item in Model.MyList)
      {
       if (item.IsDeleted == 1)
       {
          <tr class="danger">
              <td>@item.FirstName</td>
              <td>@item.LastName</td>
              <td>@item.EmployeeId</td>
          </tr>
       }
       else
       {
          <tr>
              <td>@item.FirstName</td>
              <td>@item.LastName</td>
              <td>@item.EmployeeId</td>
          </tr>
       }  
      

      或者另一种选择是

      @foreach (var item in Model.MyList)
      {
         <tr @(item.IsDeleted != 1 ? String.Empty : "class=\"danger\"" )>
      
              <td>@item.FirstName</td>
              <td>@item.LastName</td>
              <td>@item.EmployeeId</td>
          </tr>
      }
      

      【讨论】:

      • 谢谢,第一个建议是我最初所做的,但我的表格单元格比我发布的要多,而且看起来有很多重复的代码。您的替代方案更接近我所寻找的。​​span>
      • 这对你有用吗?
      • 我使用了@Rahul 的建议,与您发布的内容相似。
      猜你喜欢
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 1970-01-01
      • 2012-12-24
      相关资源
      最近更新 更多