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"); }
  • 相关阅读:
    防止头文件的重复包含问题
    git常用命令
    redis
    linux常用操作
    数据库安装
    mysql修改表结构
    mysql 忘记root密码及授权访问
    mysql连表查询
    mysql 存取ip方法
    php批量修改表结构
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2408463.html
Copyright © 2011-2022 走看看