ASP.Net MVC 3 Razor Response.Write position

Я пытаюсь обновить этот учебник по внедрению Facebooks BigPipe в razor.

Существует вспомогательное расширение html, которое добавляет пейлет в список, а затем выводит удерживающий div в ответ. Идея состоит в том, что позже содержимое этого пейджета преобразуется в строку, а затем вводится в этот блок-блок с помощью javascript.

public static void RegisterPagelet(this HtmlHelper helper, Pagelet pagelet) {
    var context = helper.ViewContext.HttpContext;
    List pagelets = (List)context.Items["Pagelets"];
    if (pagelets == null) {
        pagelets = new List();
        context.Items["Pagelets"] = pagelets;
    }
    pagelets.Add(pagelet);
    context.Response.Write("
"); }

В этом примере эта функция вызывается следующим образом:

<% Html.RegisterPagelet(myPagelet); %>

Которая добавляет пейлет в списки , и выводит удерживающий div в поток ответа.

Итак

Однако, когда я пытаюсь сделать то же самое в Razor:

@{ Html.RegisterPagelet(myPagelet); }

Заполнитель div появляется в верхней части тела, за пределами div textHolder. Почему это? Как я могу заставить это вести себя как представление веб-форм, где ответ выводится внутри div?

Спасибо.

18
задан collapsar 28 August 2013 в 08:59
поделиться