用于部分视图的ASP.NET MVC控制器

时间:2012-04-01 19:36:48

标签: asp.net-mvc

我最近刚刚开始使用ASP.NET-MVC 4构建一个网站,我试图了解它是如何工作的。

我希望在每个页面上显示一些数据,并了解部分视图对此非常有用。

是否可以创建一个始终为部分视图提供数据的控制器?或者我该如何解决这个问题?

3 个答案:

答案 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)