我正在查看此页面,其中包含以下剃须刀扩展:
public static void Repeat<T>(this HtmlHelper html, IEnumerable<T> items, Action<T> render, Action separator)
以下是该页面的使用示例:
<% Html.Repeat(Model.Products, p => { %>
<div><%= p.Id%></div>
<div><%= p.Name%></div>
<%}, () => { %>
<br /> <%-- separator --%>
<% }); %>
我不知道如何将上面的代码片段转换为剃须刀代码,如何将 Html 输出嵌入到函数调用代码块中?
我试过这个:
@Html.Repeat(
items: Model.Nodes,
render: node => @: <a href='@node.Title'>@node.Url<a />
, separator: () => @:|
)
但我得到以下异常:
CS0201:只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句
我按照下面的回答更新了Repeat
函数,现在我的剃须刀代码如下所示:
@{
Html.Repeat(
items: Model.Nodes,
template: @<text><a href="@item.Url">@item.Title</a></text>,
separator: @<text> | </text>);
}
但实际上没有项目被渲染。