Я пытаюсь обновить этот учебник по реализации Facebook BigPipe для бритвы.
Существует расширение html-помощника, которое добавляет лист-лист в список, а затем выводит на него ответный запрос. Идея заключается в том, что позже содержимое этой страницы отображается в строку, а затем вводится в этот холдинг div через javascript.
public static void RegisterPagelet(this HtmlHelper helper, Pagelet pagelet) {
var context = helper.ViewContext.HttpContext;
List<Pagelet> pagelets = (List<Pagelet>)context.Items["Pagelets"];
if (pagelets == null) {
pagelets = new List<Pagelet>();
context.Items["Pagelets"] = pagelets;
}
pagelets.Add(pagelet);
context.Response.Write("<div id=\"" + pagelet.Container + "\"></div>");
}
В примере эта функция вызывается следующим образом:
<div id="textHolder">
<% Html.RegisterPagelet(myPagelet); %>
</div>
Что добавляет проспект в списки и выводит удерживающий div в поток ответов.
So
<div id="textHolder">
<div id="pageletPlaceHolder"></div>
</div>
Однако, когда я делаю то же самое в Razor:
<div id="textHolder">
@{ Html.RegisterPagelet(myPagelet); }
</div>
Заполнитель div появляется в верхней части тела, за пределами div текстового поля. Почему это? Как я могу заставить это вести себя как представление webforms, где ответ выводится внутри div?
Спасибо.