Как организовать представления и контроллеры иерархически при наличии модели с большим количеством детей
Допустим, у меня есть веб-сайт, на котором перечислены люди, и у каждого человека есть несколько свойств, некоторые один-к-одному (имя, адрес), некоторые один-ко-многим (любимые цвета, банковские счета и т. Д.).
На уровне моего бизнеса это хорошо организовано.
Как мне организовать это мои контроллеры и просмотры? Должен ли я иметь 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
-------------....