在ASP。NET MVC,有什么区别:
超文本标记语言Partial和Html。RenderPartial方法 超文本标记语言动作和Html。RenderAction
在ASP。NET MVC,有什么区别:
超文本标记语言Partial和Html。RenderPartial方法 超文本标记语言动作和Html。RenderAction
当前回答
关于这个问题:
当Html.RenderPartial()只调用部分的名称时 看来,ASP。NET MVC将传递给部分视图相同的模型和 调用视图模板使用的ViewData字典对象。
“NerdDinner”来自专业ASP。Net MVC 1.0
其他回答
对于“partial”,我总是这样使用:
如果有一些东西你需要包含在一个页面,你需要通过控制器(就像你会用Ajax调用),然后使用“Html.RenderPartial”。
如果你有一个“静态”包含,它本身没有链接到控制器,而只是在“共享”文件夹中,例如,使用“HTML.partial”
超文本标记语言Partial:返回MvcHtmlString和slow
超文本标记语言RenderPartial:直接渲染/写入输出流,并返回void,与Html相比,它非常快。部分
超文本标记语言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更快。