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

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


当前回答

对于“partial”,我总是这样使用:

如果有一些东西你需要包含在一个页面,你需要通过控制器(就像你会用Ajax调用),然后使用“Html.RenderPartial”。

如果你有一个“静态”包含,它本身没有链接到控制器,而只是在“共享”文件夹中,例如,使用“HTML.partial”

其他回答

关于这个问题:

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

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

超文本标记语言Partial:返回MvcHtmlString和slow

超文本标记语言RenderPartial:直接渲染/写入输出流,并返回void,与Html相比,它非常快。部分

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

差异:

RenderPartial的返回类型是void,而as Partial返回MvcHtmlString Razor视图中调用Partial()和RenderPartial()方法的语法 @Html.Partial(“PartialViewName”) @ {Html.RenderPartial(“PartialViewName”);} 在webform视图中调用Partial()和RenderPartial()方法的语法

[%: Html.Partial(“PartialViewName”) %] [% Html.RenderPartial(“PartialViewName”); %]

以下是与Partial()和RenderPartial()相关的2个常见面试问题 什么时候你会使用Partial()而不是RenderPartial(),反之亦然?

主要的区别是RenderPartial()返回void,输出将直接写入输出流,而Partial()方法返回MvcHtmlString,它可以被赋值给一个变量,并在需要时操作它。因此,当需要将输出分配给变量进行操作时,请使用Partial(),否则使用RenderPartial()。

哪一种性能更好?

从性能的角度来看,直接呈现到输出流更好。RenderPartial()做完全相同的事情,并且比Partial()的性能更好。

以下是我的发现:

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

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

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

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

RenderAction和RenderPartial更快。