MVC2 中 Html.Partial(view, model) 和 Html.RenderPartial(view,model) 之间有什么区别(如果有)?

2024-03-23

当然,除了它返回的类型以及您以不同方式调用它的事实之外

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

唯一的区别是Partial返回一个MvcHtmlString,并且必须在内部调用<%= %>, 然而RenderPartial returnsvoid并直接渲染到视图。

如果你看一下源代码 http://aspnet.codeplex.com/releases/view/41742,您会看到它们都调用相同的内部方法,传递一个 StringWriter 供其渲染。

你会打电话Partial如果您想要查看、保存或操作生成的 HTML,而不是将其写入页面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC2 中 Html.Partial(view, model) 和 Html.RenderPartial(view,model) 之间有什么区别(如果有)? 的相关文章

随机推荐