web-dev-qa-db-ja.com

ASP.NET MVC Razor連結

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="[email protected]">Item @item.TheItemId</li>
}
</ul>

パーサーは、id属性のアンダースコアの右側のすべてがプレーンテキストであり、解析されるべきではないと考えているため、窒息しています。 TheItemIdをレンダリングするようにパーサーに指示する方法がわかりません。

したくないのですが、item_プレフィックスを含むモデルオブジェクトのプロパティです。

また、JQuery Sortableでリストを使用しているため、この構文でid属性をフォーマットする必要があるserialize関数でこの構文を保持する必要があります。

88
David Marchelya

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

<li id="[email protected](item.TheItemId)">
189
Matthew Abbott

String.Format ?このような:

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

25
Filip Ekberg

私が好む:

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

冗長性は、サポート開発者に何が起こっているかを正確に伝えるため、明確で理解しやすいです。

9
Gary Woodfine

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

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

ここ は別の投稿です。

希望は誰かを助ける。

2
stom