好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Html.RenderPartial和Html.Partial在Razor视图中的区别

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 " ); }

复制代码

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于Html.RenderPartial和Html.Partial在Razor视图中的区别的详细内容...

  阅读:62次