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"); }
  • 相关阅读:
    Django学习(二) Django框架简单搭建
    Django学习(一) Django安装配置
    Python学习(一) Python安装配置
    注册第一天,纪念一下
    小程序笔记
    详解HTML5中的进度条progress元素简介及兼容性处理
    服务管理
    yum
    管道,输出,管道,重定向,grep
    VIM
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2408463.html
Copyright © 2011-2022 走看看