ASP.NET MVC剃须刀串联
-
11-10-2019 - |
题
我正在尝试使用Razor View Engine的渲染列表,该列表看起来如下:
<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排序的列表以及需要在本语法中格式化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>
这里 是另一个帖子。
希望帮助某人。
不隶属于 StackOverflow