asp.net mvc @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderAction区别

 

转载自 :  《asp.net mvc @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderAction区别

先复制过来。。

带Render的方法返回值是void,在方法内部进行输出;不带Render的返回值类型为MvcHtmlString,是一个字符串。

Partial和RenderPartial:直接加载视图文件内容;Action和RenderAction:重新执行一次Controller→Model→View的顺序,然后把产生的页面带回到原来的View中再回传。

Partial和RenderPartial:可以直接提供用户控件名作为参数;Action和RenderAction:需要有对应的Action,在Action内部返回PartialResult(即return PartialView())。

对于简单的没有任何逻辑的用户控件,推荐使用Partial;对于需要设置一些Model的用户控件,推荐使用Action。

使用Html.Action有另外一个好处,就是在return PartialView时可以根据不同的场景选择不同的用户控件。

 

当时用到@Html.Action被耍..然后查到了上边的文章..感觉写的很好..有对比.容易理解

其实他们的共同点就是非常类似于 以前用的 incloud  都是把别处的文件或者值加载到当前页面..

区别就是在应用过程中..如果那个文件内部需要计算的..需要传参的..需要调用数据库等实用Model的..则区分使用..

要注意的是  

Action和RenderAction:重新执行一次Controller→Model→View的顺序,然后把产生的页面带回到原来的View中再回传。

这句话..就意味着..如果你在加载的页面里..不修改Layout 的值..输出的结果很可能令你吃惊..因为要报错的..

或者是把你调用的这个文件的值又填充到了你母版页的@RenderBody() 处..

所以建议在这个文件的前边写上 Layout=null

原文地址:https://www.cnblogs.com/iiwen/p/4351808.html