Sté*_*ane 140 asp.net asp.net-mvc-2
除了它返回的类型以及你当然以不同方式调用它的事实
<% Html.RenderPartial(...); %>
<%= Html.Partial(...) %>
Run Code Online (Sandbox Code Playgroud)
如果它们不同,你为什么要打电话给一个而不是另一个?
定义:
// 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);
}
}
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 167
唯一的区别是Partial
返回an MvcHtmlString
,并且必须在内部调用<%= %>
,而RenderPartial
返回void
并直接呈现给视图.
如果查看源代码,您会看到它们都调用相同的内部方法,并传递StringWriter以进行渲染.
Partial
如果要查看,保存或操作生成的HTML而不是将其写入页面,则可以调用.
\n\n这两种方法之间的差异可能看起来很小并且无害,但如果您不知道如何处理它,它可能会困扰您。两种方法之间的主要区别是:
\n\n\n
\n\n- \n
Partial
返回 HTML 编码的字符串- \n
RenderPartial
是直接写入响应输出流的 void 方法。两种方法的用法略有不同:
\n\nRun Code Online (Sandbox Code Playgroud)\n\n@Html.Partial("_yourPartialView")\n@{ Html.RenderPartial("_yourPartialView "); }\n
选择使用哪个取决于您的要求。如果您需要进一步操作响应流中注入的字符串,您应该使用
\n\nPartial
; 否则使用RenderPartial
\n ,这只是因为它直接进入流,\n 比 快一点Partial
。最后,部分视图的用例属于两个阵营。第一种情况是通过将各种独立的标记组合在一起来创建视图,如下所示。
\n\nRun Code Online (Sandbox Code Playgroud)\n\n<body>\n @{ Html.RenderPartial("_Header"); }\n @Html.Partial("_Sidebar")\n <div class="container body-content">\n @RenderBody()\n </div>\n @{ Html.RenderPartial("_Footer"); }\n</body>\n
在这种情况下,您在
\nRenderPartial
or\n 之间进行选择的决定Partial
不会\xe2\x80\x99 改变最终效果。但是,由于 \nRenderPartial
速度稍快,您可能更喜欢使用它。
归档时间: |
|
查看次数: |
43170 次 |
最近记录: |