Как организовать представления и контроллеры иерархически при наличии модели с большим количеством детей

Допустим, у меня есть веб-сайт, на котором перечислены люди, и у каждого человека есть несколько свойств, некоторые один-к-одному (имя, адрес), некоторые один-ко-многим (любимые цвета, банковские счета и т. Д.).

На уровне моего бизнеса это хорошо организовано.

Как мне организовать это мои контроллеры и просмотры? Должен ли я иметь PersonsController, FavoriteColorsController и т. Д.? все проживают в одном пространстве имен и в папке? Или я должен иметь только PersonsController со многими действиями, такими как IndexFavouriteColors, UpdateFavoriteColor и т. Д. Оба варианта не совсем так. Первый не показывает, что FavoriteColors является потомком Person и может использоваться только в контексте человека. Второй создаст огромный PersonController.

То же самое с взглядами конечно. Самое хорошее было бы иметь

  • Views/ Персоналии / index.aspx
  • Views/ Персоналии / details.aspx
  • Взгляды / Персоны / и т. Д.
  • Views/ Персоналии /FavoriteColors/ index.aspx
  • Views/ Персоналии /FavoriteColors/ details.aspx

В этом примере я дал человеку только несколько свойств "один ко многим", но на самом деле их много (10+), что увеличивает потребность в ясности.

Благодарю.

2 ответа

Решение

На самом деле я нашел ответ в "Областях", которые предположительно поддерживаются Rails, но не MVC, хотя существуют частные реализации:

Группировка контроллеров с ASP.NET MVC
Создание MVC "Области" как подпапки в представлениях

PersonsController.cs

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

....

Щелкните правой кнопкой мыши в каждом методе и генерируйте представления

В папке Views в результате вы должны иметь

Views
----- Persons
-------------Index
-------------Details
-------------Info
-------------....
Другие вопросы по тегам