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="item_@item.TheItemId">Item @item.TheItemId</li> } </ul> 

parsing器是窒息的,因为它认为id属性中的下划线右边的所有内容都是纯文本的,不应该被parsing。 我不确定如何指示parsing器呈现TheItemId。

我不想只在包含item_前缀的模型对象上有一个属性。

我也必须保持这种语法,因为我正在使用带有JQuery Sortable的列表以及需要使用此语法格式化id属性的serialize函数。

你应该用( )包装呼叫的内部部分:

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

如何使用String.Format ? 喜欢这个:

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

我更喜欢:

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

详细程度告诉支持开发者到底发生了什么,所以清楚易懂。

你甚至可以用这种方式来连接更多的string

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

这是另一篇文章。

希望有助于某人。