ASP.NET MVC @Html.Partial @Html.RenderPartial @Html.Action @Html.RenderAction区别
区别
- 带Render的方法返回值为void,输出到HttpContext;不带Rander的返回值为MvcHtmlString,为string 直接输出到页面。
- Partial和RenderPartial:直接加载部分视图文件内容;Action和RenderAction:重新执行一次Controller → Model → View的顺序,,然后把产生的页面带回到原来的View中再回传。
- Partial和RenderPartial:可以直接提供用户控件名作为参数;Action和RenderAction需要有对应的Action,在Action内部返回PartialResult(即return PartialView())。
- 对于简单的没有任何逻辑的用户控件,推荐使用Partial;对于需要设置一些Model的用户控件,推荐使用Action。
- 使用Html.Action有另外一个好处,就是在return PartialView时可以根据不同的场景选择不同的用户控件。
Razor语法
@Html.Partial与@Html.RenderPartial
使用方法:@Html.Partial("", "") @{Html.RenderPartial("", "");}
说明:提供两个方法参数,第一个要呈现的分部视图的名称(视图的名称),第二个用于分部视图的模型(父视图传到分部视图中的数据)。
@Html.Action与@Html.RenderAction
使用方法:@Html.Action("", "") @{Html.RenderAction("","");}
说明:提供两个参数,第一个参数为要操作方法的控制器的名称,第二个是包含操作方法的控制器名称。
注意: MVC分部视图必须放在调用者同一目录下,也可以放在View/Shared中。