MVC查看foreach内部的语句

时间:2016-08-03 10:10:23

标签: c# asp.net-mvc razor

我试图在Razor视图中将fore语句放入foreach循环中,但是我收到错误Error } expected,如果删除if语句则没有错误。

我尝试了其他类似问题中提到的一些不同的选项,例如使用<text></text>换行@Html.Raw,但我要做的就是为字符串设置一个值变量

    @foreach (var item in Model)
        {

            string RowColor = "Standard";
            string RowClassName = "row-" + @item.CaseID;
            int StatusDays = int.Parse(@item.StatusDays);

            if (@item.Viewings == 0 && StatusDays >= 14)
            {
                RowColor = "Red";
            }


        <tr class="row-click @RowClassName @RowColor" data-url="/Case/Details/@item.CaseID/">
            <td>
                @Html.DisplayFor(modelItem => item.CaseID)
            </td>
            <td>
                @item.RegistrationDate.Date.ToString("dd-MMM-yyyy")
            </td>
        </tr>
}

3 个答案:

答案 0 :(得分:5)

你的问题在这里

if (@item.Viewings == 0 && StatusDays >= 14)

删除@符号。

if (item.Viewings == 0 && StatusDays >= 14)

答案 1 :(得分:1)

尝试此修改后的代码

@{
   foreach (var item in Model)
        {

            string RowColor = "Standard";
            string RowClassName = "row-" + item.CaseID;
            int StatusDays = int.Parse(item.StatusDays);

            if (item.Viewings == 0 && StatusDays >= 14)
            {
                RowColor = "Red";
            }


        <tr class="row-click @RowClassName @RowColor" data-url="/Case/Details/@item.CaseID/">
            <td>
                Html.DisplayFor(modelItem => item.CaseID)
            </td>
            <td>
                item.RegistrationDate.Date.ToString("dd-MMM-yyyy")
            </td>
        </tr>
       }
}

答案 2 :(得分:0)

很长时间没有使用剃须刀,但我认为问题是你在代码中使用了更多@,例如

 string RowClassName = "row-" + @item.CaseID;
 int StatusDays = int.Parse(@item.StatusDays);

应该是

 string RowClassName = "row-" + item.CaseID;
 int StatusDays = int.Parse(item.StatusDays);