我最近刚刚开始使用ASP.NET-MVC 4构建一个网站,我试图了解它是如何工作的。
我希望在每个页面上显示一些数据,并了解部分视图对此非常有用。
是否可以创建一个始终为部分视图提供数据的控制器?或者我该如何解决这个问题?
答案 0 :(得分:8)
这被称为儿童行动。
致电Html.Action(...)
。
答案 1 :(得分:2)
您可以为局部视图创建控制器操作。但如果您正在寻找每个页面上的一些内容,您应该考虑将其添加到_Layout.cshtml页面
您可以创建一个正常的操作方法,返回像这样的部分视图
public ActionResult UserInfo()
{
UserViewModel objVm=GetUserInf();
// do some stuff
return View("PartialUserInfo",objVM);
}
这将返回PartialUserInfo
文件夹中存在名称为“Views/Users
”的视图(假设您的控制器名称为Users。如果您想指定一个不同位置的视图,您可以提及它调用View方法时
returnView("Partial/UserInfo",objVm);
这将在Views/Users/Partial
文件夹中返回名为“UserInfo”的视图。
在局部视图中,您可以通过执行此操作禁用正常布局(如果有的话)
@model UserViewModel
@{
Layout=null;
}
答案 2 :(得分:0)
一种方法是为父视图(托管所有部分的视图)建立一个模型,其中包含部分视图的模型作为其模型的属性
EX:
MainModel.ModelForPArtialView1
MainModel.ModelForPArtialView2
MainModel.ModelForPArtialView3
这样你可以在父视图
上执行此操作@Html.Partial("PartialView1",MainModel.ModelForPArtialView1)
@Html.Partial("PartialView2",MainModel.ModelForPArtialView2)
@Html.Partial("PartialView3",MainModel.ModelForPArtialView3)