Управление представлениями/контроллерами ASP.NET MVC

Я работаю над довольно большим проектом, в каждом контроллере которого безумное количество методов. То же самое с представлениями, одна папка содержит около 150 .cshtml файлов, что затрудняет изучение. Я хотел создать отдельную папку для каждой части окна, но это изменило мой адрес маршрутизации с ./Tavern/Shop на /Views/Tavern/Tavern/Shop. Контроллер таверны имеет более 3000 строк кода, и даже с помощью (Ctrl+F) трудно найти и отредактировать некоторые функции.

Любые идеи, как я могу улучшить это, не меняя много файлов в решении?


person Lubudubu1010    schedule 18.07.2015    source источник
comment
для каждой части окна - возможно, вы должны дать нам представление о том, как главная страница состоит из частей.   -  person Henk Holterman    schedule 18.07.2015
comment
Я так понимаю, в вашем контроллере много доменной логики? Может быть, вы могли бы начать с его идентификации и выделения в отдельный слой, чтобы сделать его более управляемым. Это сделает тестирование и т. д. намного проще.   -  person TBD    schedule 18.07.2015
comment
@HenkHolterman Одна часть - вид на таверну: магазины, кулинария, сон и т. д.   -  person Lubudubu1010    schedule 18.07.2015


Ответы (1)


Трудно помочь, не просматривая ваш код, но это должно быть вашим руководством:

  1. Контроллеры должны быть как можно более «тощими», весь код должен выполняться на уровне BL. (внешняя библиотека)

  2. Контроллер должен быть очень конкретным — например, продукт, контакт, дом и т. д.

  3. Маршрутизация выполняется через контроллер, а не расположение представления - вы можете указать в своем возвращении View("~/AnyPath/GoesHere/AndTheRouting/IsTheSame.cshtml") (это будет контроллер/действие) (или как вы определил это в routing.config)

  4. Вы можете рассмотреть возможность работы с областями.

person Ziv Weissman    schedule 18.07.2015