Как делает Помощника HTML, RenderPartial, работу? Как я могу реализовать помощника, который может ввести содержание от частичного представления?

Оберните это в функции и затем всего return.

6
задан Matt 15 August 2009 в 22:58
поделиться

3 ответа

Расширения RenderPartial запрограммированы на рендеринг непосредственно в объект Response ... вы можете увидеть это в исходном коде для них:

....).Render(viewContext, this.ViewContext.HttpContext.Response.Output);

Это означает, что если вы немного измените свой подход , вы, вероятно, сможете добиться того, чего хотите. Вместо того, чтобы добавлять все в StringBuilder, вы можете сделать что-то вроде этого:

using System.Web.Mvc.Html;

public static class WindowHelper
{
    public static void Window(this HtmlHelper helper, string name, string viewName)
    {
        var response = helper.ViewContext.HttpContext.Response;
        response.Write("<div id='" + name + "_Window' class='window'>");

        //Add the contents of the partial view to the string builder.
        helper.RenderPartial(viewName);

        response.Write("</div>");
    }
}

Обратите внимание, что включение System.Web.Mvc.Html позволяет вам получить доступ к методам RenderPartial ().

8
ответ дан 8 December 2019 в 14:45
поделиться

Мы исправляем это в MVC 2. Вы сможете вызвать Html.Partial () и получить фактическое содержимое представления в виде строки.

8
ответ дан 8 December 2019 в 14:45
поделиться

Почему бы не создать второе представление и частичное внутри него, передать Name как ViewData или в модели и т. д.

Что-то вроде:

<div id='<%= ViewData["Name"] + "_Window"%>' class='window'>
   <% Html.RenderPartial(ViewData["Name"]); %>
</div>

Надеюсь, что это поможет, Дэн

0
ответ дан 8 December 2019 в 14:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: