Pregunta

Estoy intentando el render una lista HTML que se parece a la siguiente, utilizando la vista del motor de la maquinilla de afeitar:

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

El código que estoy tratando de utilizar para hacer que esta lista es:

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

El analizador está asfixiando, ya que piensa que todo lo que a la derecha del guión en el atributo id es texto plano y no debe ser analizado. Estoy seguro de cómo dar instrucciones al analizador para hacer TheItemId.

Yo no quiero sino una propiedad del objeto modelo que incluye el prefijo item_.

También tiene que mantener esta sintaxis que estoy usando la lista con jQuery Sortable y con la función serialize que requiere el atributo id para ser formateado en esta sintaxis.

¿Fue útil?

Solución

Se debe envolver la parte interna de la llamada con ( ):

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

Otros consejos

¿Y si uso cadena. formatear ? de esta manera:

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

Yo prefiero:

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

El nivel de detalle dice a los desarrolladores de apoyo exactamente lo que está sucediendo, por lo que es claro y fácil de entender.

Incluso puede utilizar esta forma de concat más cadenas

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

Aquí es otro post.

La esperanza ayuda a alguien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top