Как использовать вложенные встроенные шаблоны в ASP.NET MVC Razor? - PullRequest
2 голосов
/ 11 марта 2011

Есть ли способ вложения шаблонов в Razor view-engine, такой как это в старом представлении Asp.net? Насколько я знаю, 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 />

        <% 
    }
); %>

1 Ответ

3 голосов
/ 11 марта 2011

Измените свою функцию на 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())));
}

В Razor:

@Html.Do(new []{"Beer","Fries"}, @<li>@item</li>)
...