我刚刚开始使用ASP.NET - MVC 4构建一个网站,并且我试图围绕它的工作原理包装我的头。部分视图控制器ASP.NET MVC
我想在每个页面上显示一些数据,并且已经了解部分视图对此很有帮助。
是否有可能创建一个总是为局部视图提供数据的控制器?或者我该如何解决这个问题?
我刚刚开始使用ASP.NET - MVC 4构建一个网站,并且我试图围绕它的工作原理包装我的头。部分视图控制器ASP.NET MVC
我想在每个页面上显示一些数据,并且已经了解部分视图对此很有帮助。
是否有可能创建一个总是为局部视图提供数据的控制器?或者我该如何解决这个问题?
这就是所谓的儿童行为。
致电Html.Action(...)
。
您可以为局部视图创建控制器操作。但是,如果你正在寻找的每一页上inlcluding一些事情,你应该考虑加入,为您的_Layout.cshtml页面
您可以创建返回这样
public ActionResult UserInfo()
{
UserViewModel objVm=GetUserInf();
// do some stuff
return View("PartialUserInfo",objVM);
}
的局部视图正常的操作方法这将返回名称为“PartialUserInfo
”目前的视图,您Views/Users
文件夹中(假设你的控制器名称是用户,如果要指定一个视图这是一个不同的位置调用查看方法
returnView("Partial/UserInfo",objVm);
的时候可以提到它0
这将在您的Views/Users/Partial
文件夹中返回一个名为“UserInfo”的视图。
在你的局部视图,您可以禁用正常布局(如果有的话)由doint这个
@model UserViewModel
@{
Layout=null;
}
一种方法是对父视图的模型(一个托管所有的谐音)它包含的属性在其模型中的局部视图模型
EX:
MainModel.ModelForPArtialView1
MainModel.ModelForPArtialView2
MainModel.ModelForPArtialView3
这样,你可以做到这一点父视图
@Html.Partial("PartialView1",MainModel.ModelForPArtialView1)
@Html.Partial("PartialView2",MainModel.ModelForPArtialView2)
@Html.Partial("PartialView3",MainModel.ModelForPArtialView3)
解决方案还取决于视图内容是否发生变化。所有父视图中的部分内容是否完全相同? – TGH 2012-04-01 19:45:23
会生成额外的请求吗? – johan 2012-04-01 19:43:43
@johan:不。 – SLaks 2012-04-01 19:58:09