2

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

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

我如何组织这是我的控制器和视图?我应该有 PersonsController、FavoriteColorsController 等吗?都驻留在同一个命名空间和文件夹中?或者我应该只拥有一个具有许多操作的 PersonsController,例如 IndexFavouriteColors、UpdateFavoriteColor 等。这两个选项都不完全正确。第一个没有表明 FavoriteColors 是 Person 的子级,并且只能在人的上下文中使用。第二个将创建一个巨大的 PersonController。

当然,观点也是如此。最好的就是拥有

  • 视图/人员/index.aspx
  • 视图/人员/details.aspx
  • 视图/人/等
  • 视图/人员/FavoriteColors/index.aspx
  • 视图/人员/FavoriteColors/details.aspx

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

谢谢。

4

2 回答 2

4

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

使用 ASP.NET MVC 对控制器进行分组
创建 MVC“区域”作为视图下的子文件夹

于 2009-03-27T14:04:38.033 回答
0
PersonsController.cs

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

……

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

在结果中的 Views 文件夹中,您应该有

Views
----- Persons
-------------Index
-------------Details
-------------Info
-------------....
于 2009-03-27T09:42:31.223 回答