Html.RenderPartial和Html.Partial在Razor视图中的区别
兩者都可以輸出一個Partial視圖;其區別如下:
1. Partial有返回值(MvcHtmlString);RenderPartial沒有返回值(Void)。
? 定義
?1 //PartialExtensions.Partial 方法 (HtmlHelper, String)
?2 public static MvcHtmlString Partial(
?3???? this HtmlHelper htmlHelper,
?4???? string partialViewName
?5 )
?6
?7 //RenderPartialExtensions.RenderPartial 方法 (HtmlHelper, String)
?8 public static void RenderPartial(
?9???? this HtmlHelper htmlHelper,
10???? string partialViewName
11 )
?
2. Partial輸出到臨時變量StringWriter ;RenderPartial輸出到HtmlHelper.ViewContext.Writer上(即直接輸出到Response)。
? Html.Partial內部實現www.2cto.com
public static MvcHtmlString Partial(this HtmlHelper?htmlHelper, string partialViewName)
{
??? return htmlHelper.Partial(partialViewName, null, htmlHelper.ViewData);
}
public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model, ViewDataDictionary viewData)
{
??? using (StringWriter writer = new StringWriter(CultureInfo.CurrentCulture))
??? {
??????? htmlHelper.RenderPartialInternal(partialViewName, viewData, model, writer, ViewEngines.Engines);
??????? return MvcHtmlString.Create(writer.ToString());
??? }
}
?
?
? Html.RenderPartial內部實現
1 public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName)
2 {
3???? htmlHelper.RenderPartialInternal(partialViewName, htmlHelper.ViewData, null, htmlHelper.ViewContext.Writer, ViewEngines.Engines);
4 }
?
3. 在Razor視圖中語法不一樣:
? 語法
1 @Html.Partial("PartialViewName")
2
3 @{ Html.RenderPartial("PartialViewName"); }
?
?
摘自? Rickey Hu轉載于:https://www.cnblogs.com/CskyWarrior/p/4988327.html
總結
以上是生活随笔為你收集整理的Html.RenderPartial和Html.Partial在Razor视图中的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java - 文件(IO流)
- 下一篇: [Cogs14] [网络流24题#1]