ASP.NET конкатенация бритвы MVC



Я пытаюсь отобразить список HTML, который выглядит следующим образом, используя механизм просмотра Razor:



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


код, который я пытаюсь использовать для отображения этого списка:



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


парсер задыхается, потому что он думает, что все справа от подчеркивания в атрибуте id является простым текстом и не должно быть проанализировано. Я не уверен, как проинструктировать парсер для рендеринга TheItemId.



Я не хочу, но свойство на объект модели, который включает префикс item_.



Я также должен сохранить этот синтаксис, поскольку я использую список с сортировкой JQuery и с функцией сериализации, которая требует, чтобы атрибут id был отформатирован в этом синтаксисе.

519   4  

4 ответов:

вы должны обернуть внутреннюю часть разговора с ( ):

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

Как насчет использования строку.Формат? вот так:

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

Я предпочитаю:

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

многословие говорит разработчикам поддержки точно, что происходит, так что это ясно и легко понять.

вы даже можете использовать этот способ конкатенацию нескольких строк:

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

здесь еще один пост.

надеюсь кому-нибудь поможет.

Comments

    Ничего не найдено.