Asp.net mvc MVC Razor,将if语句添加到foreach循环
我正在尝试使用razor将模型中的数据添加到表中。我的问题是,我需要一个if语句来决定tagg应该是什么类,但我无法让它工作 当我添加代码时,如果在运行代码时出现以下错误Asp.net mvc MVC Razor,将if语句添加到foreach循环,asp.net-mvc,razor,if-statement,foreach,Asp.net Mvc,Razor,If Statement,Foreach,我正在尝试使用razor将模型中的数据添加到表中。我的问题是,我需要一个if语句来决定tagg应该是什么类,但我无法让它工作 当我添加代码时,如果在运行代码时出现以下错误 The foreach block is missing a closing "}" character 如何添加if语句?这是我当前的代码 @{ var counter = 0; } @foreach (var item in Model) { if(item.status
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++;
}
@{
var计数器=0;
}
@foreach(模型中的var项目)
{
如果(item.status==“活动”){
}
否则{
}
@柜台
@item.FirstName@item.LastName
@邮件
@item.PhoneNumber
Ändra
Inaktivera
计数器++;
}
MVC应该检测html标记并将其呈现出来,但这似乎并不总是有效的
在花括号之间,尝试添加标记
例如:
{
你的html
}
或
如果只是添加类,请尝试以下操作:
<tr @(item.status == "Active" ? String.Empty : "class=\"danger\"" )>
尝试下面的代码
@{
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++;
}
@{
var计数器=0;
}
@foreach(模型中的var项目)
{
如果(item.status==“活动”){
}
否则{
}
@柜台
@item.FirstName@item.LastName
@邮件
@item.PhoneNumber
Ändra
Inaktivera
计数器++;
}
您可以添加扩展方法,根据需要使用bool或string
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")">
使用此方法将使您能够使用多个类MVC检测HTML标记。所以它不会像那样添加if语句。 您也不能使用
您需要检查
标记本身中的条件。见下面给出的结果
@{
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>
@{
var计数器=0;
}
@foreach(模型中的var项目)
{
@柜台
@item.FirstName@item.LastName
@邮件
@item.PhoneNumber
Ändra
Inaktivera
计数器++;
}
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>
@{
var计数器=0;
}
@foreach(模型中的var项目)
字符串className=项目。状态==“活动”?String.Empty:“项目第二类名称”;
{
@柜台
@item.FirstName@item.LastName
@邮件
@item.PhoneNumber
Ändra
Inaktivera
计数器++;
}
对于我当前版本的MVC*3.2.3),我需要使用此语法,因为引号会自动添加。但是谢谢你的提示!
@{
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>