在ASP。NET MVC,有什么区别:

超文本标记语言Partial和Html。RenderPartial方法 超文本标记语言动作和Html。RenderAction


当前回答

@Html。Partial以html编码的字符串返回视图,并使用相同的视图TextWriter对象。 @Html。这个方法返回void。 @Html。RenderPartial比@Html快。部分

PartialView的语法:

 [HttpGet] 
 public ActionResult AnyActionMethod
 {
     return PartialView();
 }

其他回答

超文本标记语言Partial返回一个字符串。超文本标记语言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。Action和Html.RenderAction。

区别是第一个返回MvcHtmlString,但第二个(Render..)直接输出到响应。

以下是我的发现:

使用RenderAction当你没有一个模型发送到视图,有很多html带回,不需要存储在一个变量。

当你没有要发送到视图的模型,并且有一些需要存储在变量中的文本要返回时,请使用Action。

使用RenderPartial当你有一个模型发送到视图,将有很多html,不需要存储在一个变量。

当你有一个模型要发送到视图,并且有一些文本需要存储在一个变量中时,使用Partial。

RenderAction和RenderPartial更快。

@Html。Partial和@Html。当你的Partial视图模型与父模型对应时,RenderPartial被使用,我们不需要创建任何动作方法来调用它。

@Html。Action和@Html。当你的局部视图模型独立于父模型时使用RenderAction,基本上当你想在页面上显示任何小部件类型的内容时使用。您必须创建一个action方法,该方法在从视图调用该方法时返回部分视图结果。

关于这个问题:

当Html.RenderPartial()只调用部分的名称时 看来,ASP。NET MVC将传递给部分视图相同的模型和 调用视图模板使用的ViewData字典对象。

“NerdDinner”来自专业ASP。Net MVC 1.0