質問

レイザービューエンジンを使用して、次のように見える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_プレフィックスを含むモデルオブジェクトのプロパティです。

また、この構文を使用してリストを使用しているため、この構文を使用して、この構文でID属性をフォーマットする必要があるシリアル化関数を使用しているため、この構文を維持する必要があります。

役に立ちましたか?

解決

コールの内側の部分をで包む必要があります ( ):

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

他のヒント

使用するのはどうですか string.format?このような:

<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>

ここ 別の投稿です。

希望は誰かを助けます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top