Html.Partial的适用情况
1.如果是静态文件最好用此方法
2.如果有ViewModel需要发送到主视图,可以用此方法
主视图中:
@model List<Menu> //此model为主视图的model
@Html.Partial("_MenuHome",Model) //分布页面可以用此model形成动态分布页面
ps:这种分布页面视图无需在控制器中写出相对应的方法
在分布页面_MenuHome中:
@model List<Menu> //与主页面的Model类型一致即可
@if(){
//to do:
}
Html.Action的适用情况
当需要从服务器拿额外的数据去填充此分布视图的时候,可以用此方法。
在控制器中可以写一个方法与此分布视图相对应:
public PartialViewResult _MenuHome()
{
List<Menu>=.....
//to do
return PartialView(model); //用法与其他视图无多大差异
}
在分布视图上:
@model List<Menu> //接收从PartialViewResult 返回的model
@if(){
//to do:
}
在主视图上只需要:
@Html.Action("_MenuHome")
总而言之:静态页面最好用Html.Partial,动态页面用Html.Action。
Html.RenderPartial() 和 Html.RenderAction() 只是换了个名字而已,与上述两个方法大同小异。
原文:https://stackoverflow.com/questions/11766554/mvc-html-partial-or-html-action