zoukankan      html  css  js  c++  java
  • 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 )
     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)。

    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());
        }
    }
    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());
        }
    }
     
    1 public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName)
    2 {
    3     htmlHelper.RenderPartialInternal(partialViewName, htmlHelper.ViewData, null, htmlHelper.ViewContext.Writer, ViewEngines.Engines);
    4 }
    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视图中语法不一样:

    @Html.Partial("PartialViewName")
    2 
    3 @{ Html.RenderPartial("PartialViewName"); }
    1 @Html.Partial("PartialViewName")
    2 
    3 @{ Html.RenderPartial("PartialViewName"); }
  • 相关阅读:
    Spark中文指南(入门篇)-Spark编程模型(一)
    Scala入门学习笔记三--数组使用
    沃老师学生的成绩
    Codeforces Round #461 (Div. 2) DRobot Vacuum Cleaner
    Codeforces Round #461 (Div. 2) ABC
    Educational Codeforces Round 37 (Rated for Div. 2) ABC
    Codeforces Round #460 (Div. 2) D Substring
    Codeforces Round #460 (Div. 2) ABC
    中缀式转后缀式求表达式结果
    计算器——python正则表达式
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2408463.html
Copyright © 2011-2022 走看看