Asp.net mvc 当模型具有多个子对象时,如何分层组织视图和控制器

Asp.net mvc 当模型具有多个子对象时,如何分层组织视图和控制器,asp.net-mvc,project-organization,Asp.net Mvc,Project Organization,假设我有一个网站,上面列出了人,每个人都有多个属性,一些是一对一(姓名、地址),一些是一对多(最喜欢的颜色、银行账户等) 在我的业务层中,它有很好的层次结构 如何组织这是我的控制器和视图? 我应该有一个PersonController、FavoriteColorsController等吗?是否都驻留在同一命名空间和文件夹中?或者我应该有一个具有许多操作的PersonController,比如IndexFavouriteColor、UpdateFavoriteColor等。这两个选项都不太合适。第

假设我有一个网站,上面列出了人,每个人都有多个属性,一些是一对一(姓名、地址),一些是一对多(最喜欢的颜色、银行账户等)

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

如何组织这是我的控制器和视图? 我应该有一个PersonController、FavoriteColorsController等吗?是否都驻留在同一命名空间和文件夹中?或者我应该有一个具有许多操作的PersonController,比如IndexFavouriteColor、UpdateFavoriteColor等。这两个选项都不太合适。第一个例子并没有说明FavoriteColors是Person的孩子,只能在Person的上下文中使用。第二个将创建一个巨大的PersonController

当然,观点也是如此。最好是

  • 视图/个人/index.aspx
  • Views/Persons/details.aspx
  • 观点/人/等
  • 视图/人员/收藏夹颜色/index.aspx
  • 视图/人员/收藏夹颜色/详细信息.aspx
在这个例子中,我只给了这个人一些一对多的属性,但实际上有很多(10+),这增加了对清晰度的需要

谢谢

PersonsController.cs

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

在每个方法中单击鼠标右键并生成视图

在结果中的“视图”文件夹中

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

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



人本身不是问题所在。它是当前视图的“子视图”的划分。我想创建一个视图文件夹结构来表示路由结构,如:/Person//Person/{id}/details/Person/{id}/FavoriteColors//Person/{id}/FavoriteColors/{id}/details第二个链接不知何故损坏了。看起来后面还有一条斜线。