MVC For..Each如何有条件地设置类?

时间:2017-10-25 13:52:59

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

我有一个For ... MVC视图中列表的每个循环。我需要做的是查看属性以确定记录是否已被标记为已删除,然后我将Bootstrap类设置为" danger"在一排桌子上。

我可以查看属性并为每个条件编写表格行,但这似乎是额外的工作。如果我使用以下代码,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>
}

3 个答案:

答案 0 :(得分: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>
}

答案 1 :(得分:0)

这样的事情怎么样?

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

答案 2 :(得分:0)

你可以这样简单地使用它

@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>
}