我想更新this tutorial實施Facebook BigPipe剃鬚刀。ASP.Net MVC 3 Razor Response.Write position
有一個html助手擴展,它將一個pagelet添加到列表中,然後輸出一個持有div給響應。這個想法是,稍後將這個pagelet的內容呈現爲一個字符串,然後通過javascript注入到這個控股div中。
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來響應流。
所以
<div id="textHolder">
<div id="pageletPlaceHolder"></div>
</div>
然而,當我嘗試同樣的剃刀:
<div id="textHolder">
@{ Html.RegisterPagelet(myPagelet); }
</div>
在div佔位符出現在機身的頂部,textHolder DIV之外。爲什麼是這樣?我怎麼能得到這個行爲像webforms視圖中的div內輸出響應?
謝謝。
太棒了!這工作。謝謝。 – Terry 2011-04-10 15:47:37
謝謝,你整理了一下頭部有點劃傷:) – MemeDeveloper 2011-10-01 23:04:47
特里你試過@ Html.Raw嗎? – 2012-09-12 20:18:25