Я пытаюсь отобразить список 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="item_@item.TheItemId">Item @item.TheItemId</li>
}
</ul>
Синтаксический анализатор задыхается, потому что считает, что все справа от подчеркивания в атрибуте id является обычным текстом и не должно анализироваться. Я не знаю, как указать парсеру на рендеринг TheItemId.
Я не хочу, но свойство объекта модели, которое включает префикс item_.
Я также должен сохранить этот синтаксис, поскольку я использую список с JQuery Sortable и с функцией сериализации, которая требует, чтобы атрибут id был отформатирован в этом синтаксисе.
asp.net-mvc
asp.net-mvc-3
razor
asp.net-mvc-4
Давид Марчеля
источник
источник
@
скобки и) ... То, что в итоге сработало для меня, было очень некрасивымid="foo" + Model.Bar
.Как насчет использования String.Format ? как это:
<li id="@String.Format("item_{0}", item.TheItemId)">
источник
id="@String.Format('foo{0}', item.Bar)"
?Я предпочитаю:
<li id="@String.Concat("item_", item.TheItemId)">
Многословие сообщает разработчикам службы поддержки, что именно происходит, поэтому все ясно и легко для понимания.
источник
Вы даже можете использовать этот способ для объединения большего количества строк :
<li id="@("item-"+item.Order + "item_"+item.ShopID)" class="ui-state-default"></li>
Вот еще один пост.
Надежда кому-то помогает.
источник
Вы можете сделать это проще:
id="item_@item.TheItemId"
источник
Этот пост кажется более старым, но теперь он работает в последней версии MVC:
id="item_@item.TheItemId"
источник