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"); }
  • 相关阅读:
    互联网支付的"二清"介绍
    Spring Tool Suite(STS)加速
    如何将任意文件固定在 Win10 的开始屏幕中
    VCL to UniGUI Migration Wizard
    kbmmw 中XML 操作入门(跨平台,而且可以与JSON,YAML,BSON 直接互相转换)
    欧洲历史上“中国热”:一个瓷器可换数个奴隶
    QPointer,QSharedPointer,QWeakPointer的区别与使用例子(QSharedPointer类似Delphi里的引用计数,是强引用,而QWeakPointer是弱引用,不影响原始对象的引用计数,相当于是在暗中观察对象,但保持联系,需要的时候就会出现)
    Visual Studio 2017 for Mac Preview
    NET Core Kestrel部署HTTPS
    多线程
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2408463.html
Copyright © 2011-2022 走看看