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 был отформатирован в этом синтаксисе.
4 ответов:
Как насчет использования строку.Формат? вот так:
<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