如何在拥有许多子项的模型时按层次结构组织视图和控制器

时间:2009-03-27 09:36:41

标签: asp.net-mvc project-organization

假设我有一个列出人员的网站,每个人都有多个属性,一些一对一(姓名,地址),一些一对多(喜欢的颜色,银行账户等)。< / p>

在我的业务层中,它的层次结构很好。

我如何组织这是我的控制器和视图? 我应该有PersonsController,FavoriteColorsController等吗?所有都驻留在同一名称空间和文件夹中?或者我应该使用具有许多操作的PersonsController,例如IndexFavouriteColors,UpdateFavoriteColor等。两个选项都不是它。第一个没有显示FavoriteColors是Person的子项,只能在person的上下文中使用。第二个将创建一个巨大的PersonController。

同样的观点当然是观点。最好的是

  • 查看/人/的Index.aspx
  • 观点/人物/ details.aspx
  • 观点/人物/等。
  • Views / Persons / FavoriteColors / index.aspx
  • 查看/人/ FavoriteColors / details.aspx

在这个例子中,我只为Person提供了一些一对多属性,但实际上有很多(10+)属性,因此增加了对清晰度的需求。

感谢。

2 个答案:

答案 0 :(得分:4)

实际上我在“区域”中找到了答案,据说这是由Rails支持的,但不是由MVC支持,尽管有私有实现:

Grouping Controllers with ASP.NET MVC
Creating MVC "Areas" as Subfolders under Views

答案 1 :(得分:0)

PersonsController.cs

public ActionResult Index()
{
  return View();
}
public ActionResult Details()
{
  return View();
}
public ActionResult Info()
{
  return View();
}

...

右键单击每个方法并生成视图

结果中的Views文件夹中应该有

Views
----- Persons
-------------Index
-------------Details
-------------Info
-------------....