asp.net-mvc - page - razor variable




MVC Razor, füge if-Anweisung zur foreach-Schleife hinzu (2)

MVC sollte HTML-Tags erkennen und diese ausgeben, aber es scheint, dass dies nicht immer funktioniert.

Versuchen Sie zwischen den geschweiften Klammern ein Tag hinzuzufügen

z.B:

{
<text> 
   your html 
</text>
} 

oder

Wenn Sie nur die Klasse hinzufügen, versuchen Sie Folgendes:

<tr @(item.status == "Active" ? String.Empty : "class=\"danger\"" )>

Ich versuche, Daten von meinem Modell zu einem Tisch mit Rasiermesser hinzuzufügen. Mein Problem ist, dass ich möchte, dass eine if-Anweisung entscheidet, welche Klasse das Tagg sein soll und ich kann das nicht zum Funktionieren bringen.

Wenn ich das addiere, wenn ich den folgenden Fehler empfange, wenn ich den Code laufen lasse

The foreach block is missing a closing "}" character

Wie sollte ich die if-Anweisung hinzufügen? Dies ist mein aktueller Code

@{
      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++;
}

Sie können eine Erweiterungsmethode hinzufügen, die abhängig von Ihren Bedürfnissen bool oder string übernimmt

public static class HtmlHelpExtention
        {  
          public static string IsChecked(this IHtmlHelper htmlHelper,bool IsCheck, string className)
            {
                return IsCheck? className:"";
            }
         }

und dann benutze es in der Ansicht

<tr class="@Html.IsChecked(item.IsGift,"teal accent-3")">

Wenn Sie diese Methode verwenden, können Sie mehrere Klassen verwenden





foreach