我正在尝试使用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>

这里 是另一个帖子。

希望帮助某人。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top