zoukankan      html  css  js  c++  java
  • Html.RenderPartial("")与Html.Partial("")区别

    这个HtmlHelper的扩展方法Partial,和HtmlHelper自带的 RenderPartial功能比较接近,

     

    两者都可以输出一个Partial视图;其区别如下:

    <一>. Partial有返回值(MvcHtmlString);RenderPartial没有返回值(Void)。

     1 //定义  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 )

    <二>不过Partial是将视图内容直接生成一个字符串并返回,RenderPartial方法是直接输出至当前 HttpContext。因此它们在视图中的使用方式是不同的,

    Partial输出到临时变量StringWriter ;RenderPartial输出到HtmlHelper.ViewContext.Writer上(即直接输出到Response)。
     1   Html.Partial内部实现public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName)
     2   {
     3      return htmlHelper.Partial(partialViewName, null, htmlHelper.ViewData);
     4   }
     5  
     6   
     7   public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model, ViewDataDictionary viewData)
     8   {
     9       using (StringWriter writer = new StringWriter(CultureInfo.CurrentCulture))
    10      {
    11          htmlHelper.RenderPartialInternal(partialViewName, viewData, model, writer, ViewEngines.Engines);
    12          return MvcHtmlString.Create(writer.ToString());
    13      }
    14    }
    15 ---------------------------------------------------------------------------------
    16   public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName)
    17   {
    18      htmlHelper.RenderPartialInternal(partialViewName, htmlHelper.ViewData, null, htmlHelper.ViewContext.Writer, ViewEngines.Engines);
    19   }
    
    
     

    <三>在Razor视图中语法不一样:

    @Html.Partial("PartialViewName")
    @{ Html.RenderPartial("PartialViewName"); }
    View Code
  • 相关阅读:
    c#数据结构与算法
    学习资源---.NET
    怎样完全删除sqlserver
    树,森林 二叉树之间转化 原理
    ref 和out 区别
    GridView批量删除记录、全选及弹出确认对话框
    .NET基础 小记--------2013.8.10
    Xml 读写
    同步 异步 区别
    委托学习
  • 原文地址:https://www.cnblogs.com/felix-wang/p/7112340.html
Copyright © 2011-2022 走看看