Вопрос

Я пробую рендеринг списка HTML, который выглядит следующим образом, используя двигатель View 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 является простым текстом и не должно быть проанализировано. Я не уверен в том, как инструктировать анализатор, чтобы сделать театемид.

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

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

Это было полезно?

Решение

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

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

Другие советы

Как насчет использования String.format? как это:

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

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

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

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

Вы даже можете использовать таким образом, чтобы Concat больше струн:

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

Здесь это еще один пост.

Надежда поможет кому -то.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top