除了它返回的类型以及你当然以不同方式调用它的事实
<% Html.RenderPartial(...); %>
<%= Html.Partial(...) %>
如果它们不同,你为什么要打电话给另一个而不是另一个? 定义:
// Type: System.Web.Mvc.Html.RenderPartialExtensions
// Assembly: System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// Assembly location: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\System.Web.Mvc.dll
using System.Web.Mvc;
namespace System.Web.Mvc.Html
{
public static class RenderPartialExtensions
{
public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName);
public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData);
public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName, object model);
public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName, object model,
ViewDataDictionary viewData);
}
}
// Type: System.Web.Mvc.Html.PartialExtensions
// Assembly: System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// Assembly location: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 2\Assemblies\System.Web.Mvc.dll
using System.Web.Mvc;
namespace System.Web.Mvc.Html
{
public static class PartialExtensions
{
public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName);
public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName,
ViewDataDictionary viewData);
public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model);
public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model,
ViewDataDictionary viewData);
}
}
答案 0 :(得分:163)
唯一的区别是Partial
返回MvcHtmlString
,必须在<%= %>
内调用,而RenderPartial
返回void
并直接呈现给视图
如果查看source code,您会看到它们都调用相同的内部方法,并传递StringWriter以进行渲染。
如果要查看,保存或操作生成的HTML而不是将其写入页面,则可以调用Partial
。
答案 1 :(得分:3)
HTML.RenderPartial不会像大多数其他帮助程序方法一样返回HTML标记。代替该方法,该方法直接将内容写入响应流,这就是开发人员必须使用分号将其称为整个C#行的原因。这比从局部视图缓冲渲染的HTML稍微有效,因为无论如何它都会被写入响应流。
答案 2 :(得分:0)
Html.Partial 和 Html.RenderPartial 是扩展方法,是网页的可重用部分。 RenderPartial 的返回类型为 void,而 Partial 返回 MvcHtmlString。 Html.RenderAction 将直接将结果呈现到响应流(更高效、更快速),而 Html.Action 返回一个带有结果的字符串(可以操作)。< /p>