我正在尝试将模型中的数据添加到带有剃刀的表格中。我的问题是我想要一个if语句来决定tagg应该是什么类,我不能让它工作。
当我添加if时,我在运行代码时出现以下错误
The foreach block is missing a closing "}" character
我应该如何添加if语句?这是我目前的代码
@{
var counter = 0;
}
@foreach (var item in Model)
{
if(item.status == "Active") {
<tr>
}
else {
<tr class="danger">
}
<td>@counter</td>
<td>@item.FirstName @item.LastName</td>
<td>@item.Email</td>
<td>@item.PhoneNumber</td>
<td>Ändra</td>
<td>Inaktivera</td>
</tr>
counter++;
}
答案 0 :(得分:26)
MVC应检测html标签并将其渲染出去,但似乎这并不总是有效。
在大括号之间,尝试添加标记
例如:
{
<text>
your html
</text>
}
或
如果您只是添加课程,请尝试以下内容:
<tr @(item.status == "Active" ? String.Empty : "class=\"danger\"" )>
答案 1 :(得分:4)
尝试以下代码。
@{
var counter = 0;
}
@foreach (var item in Model)
{
if(item.status == "Active") {
<text> <tr> </text>
}
else {
<text><tr class="danger"></text>
}
<td>@counter</td>
<td>@item.FirstName @item.LastName</td>
<td>@item.Email</td>
<td>@item.PhoneNumber</td>
<td>Ändra</td>
<td>Inaktivera</td>
</tr>
counter++;
}
答案 2 :(得分:1)
您可以根据需要添加采用bool或字符串的扩展方法
public static class HtmlHelpExtention
{
public static string IsChecked(this IHtmlHelper htmlHelper,bool IsCheck, string className)
{
return IsCheck? className:"";
}
}
然后在视图中使用它
<tr class="@Html.IsChecked(item.IsGift,"teal accent-3")">
使用此方法将使您能够使用多个类
答案 3 :(得分:1)
MVC检测HTML标记。因此它不会添加if语句。
您也不能使用<tr>
。
您需要检查 @{
var counter = 0;
}
<table>
@foreach (var item in Model)
{
<tr @(item.status=="Active" ? String.Empty : "class=\" danger\"")>
<td>@counter</td>
<td>@item.FirstName @item.LastName</td>
<td>@item.Email</td>
<td>@item.PhoneNumber</td>
<td>Ändra</td>
<td>Inaktivera</td>
</tr>
counter++;
}
</table>
标记本身中的条件。参见下面的给定结果。
{{1}}
答案 4 :(得分:0)
Love Pandey解决方案适用于我,但仅适用于一个班级名称。对于多个类名,浏览器将第二名解释为单独的属性。我对此的修改如下:
@{
var counter = 0;
}
<table>
@foreach (var item in Model)
string className = item.status=="Active" ? String.Empty : "item second-class-name";
{
<tr class="@className">
<td>@counter</td>
<td>@item.FirstName @item.LastName</td>
<td>@item.Email</td>
<td>@item.PhoneNumber</td>
<td>Ändra</td>
<td>Inaktivera</td>
</tr>
counter++;
}
</table>