有没有办法在Razor视图引擎中嵌套模板 在旧的Asp.net viewengine中这样吗?因为我知道Razor只支持一个级别的模板。
-John
<%Html.Do(new string[]{"Chris","John"}, name =>
{
%>
<li><%=name%></li>
<%Html.Do(new string[]{"Beer","Fries"}, stuff => {
%>
<li><%=stuff%></li>
<%
}); %>
<hr size=1 />
<%
}
); %>
答案 0 :(得分:3)
将您的功能更改为Func<T, HelperResult>
,然后传递@<li>@item</li>
编辑:例如:
public static IHtmlString Do<T>(this HtmlHelper html, IEnumerable<T> items, Func<T, HelperResult> template) {
return html.Raw(String.Join("\n", items.Select(o => template(o).ToString())));
}
在剃刀中:
@Html.Do(new []{"Beer","Fries"}, @<li>@item</li>)