ASP.NET MVC View Соглашения об именах моделей - PullRequest
18 голосов
/ 01 сентября 2011

Я знаю, что, вероятно, получу смешанное мнение по этому вопросу, но мне было интересно, есть ли "Best Practices" для соглашений по именованию моделей.

У меня довольно большое приложение, и я принял следующеесоглашение об именах моделей:

  • Модели
    • Добавить
      • CategoryAddModel
      • ProductAddModel
    • Редактировать
      • CategoryEditModel
      • ProductEditModel
    • Просмотр
      • CategoryViewModel
      • ProductViewModel

Я также думал о следующем:

  • Модели
    • Добавить
      • AddCategoryModel
      • AddProductModel
    • Редактировать
      • EditCategoryModel
      • EditProductModel
    • Просмотр
      • ViewCategoryModel
      • ViewProductModel

Что вы предпочитаете и почему?

Как вы думаете, этосоюзник имеет значение?

Ответы [ 4 ]

14 голосов
/ 01 сентября 2011

Я предпочитаю как {ViewName}{Controller}ViewModel. Я также удаляю папку Models, вместо этого помещаю просмотр моделей в папку ViewModels. Это имеет больше смысла для меня.

например. AddCategoryViewModel

6 голосов
/ 01 сентября 2011

Это не имеет значения.Вы должны называть вещи непротиворечивым, логичным и простым способом.В основном, просто выберите то, что имеет смысл и делает вас наиболее продуктивным.Подумайте, как ваше соглашение об именах будет работать с IntelliSense.

Возможно, вы захотите подумать и о том, как легко будет поддерживать ваш код в течение года.

5 голосов
/ 16 ноября 2017

Чтобы вытащить комментарий Хайтмастона в официальный ответ для ясности.

Логическим шаблоном будет следовать:

{Controller}{ViewName}ViewModel

Это способствует лучшей организации файлов в масштабе и сокращает количество обращений Intellisense.

Простой пример может быть следующим:

CategoryIndexViewModel

Для краткости вы также можете рассмотреть:

CategoryIndexModel

1 голос
/ 09 января 2012

Теоретически CategoryViewModel, CategoryAddModel и CategoryEditModel будут содержать одни и те же свойства, поэтому нет смысла втрое увеличивать количество моделей представлений, имеющихся в вашем пользовательском интерфейсе. Просто CategoryModel должно хватить. Это тип HTTP-запросов, получаемых вашим контроллером, который определяет, будет ли это операция GET или POST. Модель, используемая для заполнения представления для GET или захвата данных формы для POST, в любом случае будет одного типа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...