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.