MVC2中的Html.Partial(视图,模型)和Html.RenderPartial(视图,模型)有什么区别(如果有)?

问题描述 投票:141回答:2

除了它返回的类型和您当然以不同的方式称呼的事实

<% 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);
    }
}
asp.net asp.net-mvc-2
2个回答
168
投票

唯一的区别是Partial返回MvcHtmlString,必须在<%= %>内部调用,而RenderPartial返回void并直接呈现到视图。

[如果您查看source code,您会看到它们都调用相同的内部方法,并传递StringWriter使其呈现给它。

如果要查看,保存或操作生成的HTML而不是将其写入页面,则可以调用Partial。>>


© www.soinside.com 2019 - 2024. All rights reserved.