Question

Je suis en train de la rendre une liste HTML qui ressemble à ce qui suit, en utilisant le moteur de vue Razor:

<ul>
  <li id="item_1">Item 1</li>
  <li id="item_2">Item 2</li>
</ul>

Le code que je tente d'utiliser pour rendre cette liste est:

<ul>
@foreach (var item in Model.TheItems)
{            
  <li id="item_@item.TheItemId">Item @item.TheItemId</li>
}
</ul>

L'analyseur est étouffait, car il pense que que tout à la droite du trait de soulignement dans l'attribut id est le texte brut et ne doit pas être analysée. Je suis incertain de la façon d'instruire l'analyseur de rendre TheItemId.

Je ne veux pas, mais une propriété sur l'objet modèle qui comprend le préfixe item_.

Je dois aussi garder cette syntaxe que j'utilise la liste avec JQuery Sortable et avec la fonction serialize qui nécessite l'attribut id être formaté dans cette syntaxe.

Était-ce utile?

La solution

Vous devez envelopper la partie intérieure de l'appel avec ( ):

<li id="item_@(item.TheItemId)">

Autres conseils

Comment l'utilisation de String. Format ? comme ceci:

<li id="@String.Format("item_{0}", item.TheItemId)">

Je préfère:

<li id="@String.Concat("item_", item.TheItemId)">

Le verbosité dit aux développeurs de soutien exactement ce qui se passe, il est donc clair et facile à comprendre.

Vous pouvez même utiliser cette façon de concat plus cordes :

<li id="@("item-"+item.Order + "item_"+item.ShopID)" class="ui-state-default"></li>

Voici un autre poste.

L'espoir aide quelqu'un.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top