为了账号安全,请及时绑定邮箱和手机立即绑定

Html.Partial对Html.RenderPartial&Html.Action对Html

Html.Partial对Html.RenderPartial&Html.Action对Html

慕田峪4524236 2019-06-20 16:05:58
Html.Partial对Html.RenderPartial&Html.Action对Html在ASP.NETMVC中,在以下方面有什么区别:Html.Partial和Html.RenderPartialHtml.Action和Html.RenderAction
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

Html.Partial返回一个字符串。Html.RenderPartial打电话Write内部和返回void.

基本用法是:

// Razor syntax@Html.Partial("ViewName")@{ Html.RenderPartial("ViewName");  }
// WebView syntax<%: Html.Partial("ViewName") %><% Html.RenderPartial("ViewName"); %>

在上面的片段中,两个调用将产生相同的结果。

的输出Html.Partial在变量中或从方法返回变量时,不可能做这件事Html.RenderPartial..结果将写入Response执行/评估期间的流。

这也适用于Html.ActionHtml.RenderAction.


查看完整回答
反对 回复 2019-06-20
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

将@Html.Partial看作复制到父页面中的HTML代码。可以将@Html.RenderPartial看作是合并到父页面中的.ascx用户控件。.ascx用户控件的开销要大得多。

@html.Partial‘返回与父字符串内联构造的html编码字符串。它访问父母的模型。

@Html.RenderPartial‘返回等效的.ascx用户控件。它自己获取页面的ViewDataDictionary副本,而对RenderPartial视图数据所做的更改不会影响父视图数据。

利用反射,我们发现:

public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model, ViewDataDictionary viewData){
    MvcHtmlString mvcHtmlString;
    using (StringWriter stringWriter = new StringWriter(CultureInfo.CurrentCulture))
    {
        htmlHelper.RenderPartialInternal(partialViewName, viewData, model, stringWriter, ViewEngines.Engines);
        mvcHtmlString = MvcHtmlString.Create(stringWriter.ToString());
    }
    return mvcHtmlString;}public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName){
    htmlHelper.RenderPartialInternal(partialViewName, htmlHelper.ViewData, null, htmlHelper.ViewContext.Writer, ViewEngines.Engines);}


查看完整回答
反对 回复 2019-06-20
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

以下是我的发现:

使用RenderAction如果您没有要发送到视图的模型,并且需要返回大量的html,则不需要将其存储在变量中。

使用行动当您没有要发送到视图的模型,并且需要将需要存储在变量中的少量文本带回时。

使用伦德帕蒂当您有一个模型要发送到视图时,将会有很多不需要存储在变量中的html。

使用部分当您有一个模型要发送到视图时,需要将少量文本存储在变量中。

RenderAction伦德帕蒂更快。


查看完整回答
反对 回复 2019-06-20
  • 3 回答
  • 0 关注
  • 535 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信