102

Razor ビュー エンジンを使用して、次のような HTML リストをレンダリングしようとしています。

<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 属性をこの構文でフォーマットする必要がある serialize 関数を使用しているため、この構文を維持する必要があります。

4

6 に答える 6

215

呼び出しの内側を( ):でラップする必要があります。

<li id="item_@(item.TheItemId)">
于 2011-01-16T00:21:27.317 に答える
27

String.Formatを使用するのはどうですか?このような:

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

于 2011-01-16T00:21:21.383 に答える
2

この方法を使用して、さらに文字列を連結することもできます。

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

ここに別の投稿があります。

希望は誰かを助けます。

于 2016-07-30T14:29:25.520 に答える
1

より簡単な方法でこれを行うことができます:

id="item_@item.TheItemId"
于 2020-06-02T09:01:48.650 に答える