我试图在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>
}
答案 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);