2012-03-07 3 views
2

В asp.net mvc3 у меня есть один файл ViewModels.cs, который содержит все классы viewmodel, которые я использую. Размер файла составляет всего 180 строк кода, и с #region s довольно легко управлять.Лучший способ организовать модели просмотра в mvc3?

Однако я боюсь, что эти модели могут начать складываться. Более того, мне кажется, что если я разбиваю каждый класс модели представлений на свой собственный файл, я получаю большое количество файлов viewmodel.cs.

Я попытался просто создать общую модель представления, но мне не рекомендовалось использовать общие классы в качестве моделей просмотра.

Что такое лучший способ организовать эти модели просмотра или лучший подход для просмотра моделей?

+0

Что не так с "большим количеством" viewModel.cs? Если большое количество просмотров в порядке, то и большое количество viewModel.cs тоже. Возможно, вы захотите организовать их в подпапках на основе функциональных областей. –

+0

@amit_g - Я не утверждаю, что что-то не так с «большим количеством» файлов viewModel.cs, кроме того, что я предпочитаю, чтобы мой обозреватель решений не выглядел как версия Price of Persia (в которой я сейчас работая над контроллерами и представлениями). –

ответ

2

Мой стандартный подход был:

  • Project.Web
    • [Содержание]
    • [Контроллеры]
      • FooController.cs
    • [ViewModels]
      • FooViewModel.cs
      • BarViewModel.cs
    • [Сценарии]
    • [просмотров]
      • [Foo]
      • [Общие]

И, в случае необходимости, вы можете добавить ссылку на пространство имен в файле конфигурации, так что вы не до конца добавляя ViewModels. к каждой ссылки:

<pages> 
    <namespaces> 
    <add namespace="MyProject.Web.ViewModels" /> 
    </namespaces> 
</pages> 

Если это какой-либо помощи. Я также видел, как люди выходят из папки ViewModels/Models в подкаталоги на основе контроллера, но я обычно не хожу в такой степени (хотя это и не повредит).

+0

Спасибо за ввод, это поможет. Мне нравится мысль о включении пространств имен по умолчанию. –

+0

@TravisJ: FWIW, Взгляните на [nerddinner] (http://nerddinner.codeplex.com/). Это проект с приличным размером, который демонстрирует множество общих практик (структура, маршруты, тематика и т. Д.). –

+0

Спасибо за предложение, я посмотрел на nerddinner и prodinner и у вас есть копии их кода. Однако, на мой взгляд, уровни абстракции зависят от размера проекта, и я не уверен, что мне нужно идти так же безумно, как это делает его продюсер с его абстракцией.Nerddinner делает довольно стандартную организацию моделей просмотра. –

Смежные вопросы