tag page net mvc asp asp.net-mvc asp.net-mvc-3 razor asp.net-mvc-4

page - Concatenación de la maquinilla de afeitar de ASP.NET MVC



forms asp net core (4)

¿Qué le String.Format usar String.Format ? Me gusta esto:

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

Estoy intentando renderizar una lista HTML que se parece a lo siguiente, usando el motor de vista Razor:

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

El código que intento usar para representar esta lista es:

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

El analizador se está ahogando, porque cree que todo lo que está a la derecha del guión bajo en el atributo id es texto sin formato y no debe analizarse. No estoy seguro de cómo ordenar al analizador que muestre TheItemId.

No quiero sino una propiedad en el objeto modelo que incluye el prefijo item_.

También tengo que mantener esta sintaxis ya que estoy usando la lista con JQuery Sortable y con la función de serializar que requiere que el atributo id esté formateado en esta sintaxis.


Debería envolver la parte interna de la llamada con ( ) :

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


Incluso puede usar esta forma para concatenar más cadenas :

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

Here hay otra publicación.

Hope ayuda a alguien


Yo prefiero:

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

La verbosidad le dice a los desarrolladores de soporte exactamente lo que está sucediendo, por lo que es claro y fácil de entender.