Лучшие практики в отношении местоположений для моделей ASP.NET MVC - PullRequest
0 голосов
/ 01 июня 2009

Существуют ли передовые практики, которые охватывают места, в которых должны быть определены модели ASP.NET MVC?

В новом проекте ASP.NET MVC есть удобная папка Models, в которую они могут войти, но в производственной среде они могут приходить из других мест:

  • Сторонние библиотеки классов
  • Услуги WCF

Допустимо ли для строго типизированного представления использовать класс, определенный в таком месте?

Ответы [ 4 ]

6 голосов
/ 02 июня 2009

Практически в каждом проекте, над которым я работал, модели ASP.NET MVC являются скорее моделями представления, чем моделями в традиционном смысле этого слова. У меня еще не было проекта, в котором я мог бы использовать ту же модель, которую я использую в своем доступе к данным для моей модели представления. Слишком много другой информации, которая должна отображаться на большинстве страниц. Поэтому по этой причине я буду либо хранить свои модели в папке моделей, либо хранить их в отдельной библиотеке со всеми другими моими конкретными классами MVC.

2 голосов
/ 01 июня 2009

Я не знаю, что именно вы имеете в виду, говоря о моделях в сервисах WCF. Если вы имеете в виду использование служб WCF, которые предоставляют нужный вам объект модели, это сработает.

Что касается отдельных библиотек классов для хранения ваших моделей, представлений и контроллеров, я думаю, что это довольно распространенный подход и работает довольно хорошо. На самом деле, я считаю, что это действительно требование, когда размер и сложность вашего приложения растут. Это своего рода физическое разделение отдельных логических компонентов в приложении MVC.

0 голосов
/ 05 октября 2009

Вам необходимо импортировать пространство имен на страницу просмотра. Для не требуется страница с заданным кодом.

Используйте директиву

<%@ import namespace='your.namespace.here' %>

сразу после директивы <@ Page.....

0 голосов
/ 01 июня 2009

Одна проблема, которую я обнаружил, заключается в том, что, если модель не определена в веб-проекте, VisualStudio, похоже, не сможет найти ее при использовании строго типизированного представления, указанного в разметке. Мои модели обычно определяются в отдельном проекте, и я обнаружил, что для использования строго типизированных представлений мне нужно создать код, чтобы у меня был класс, производный от строго типизированного ViewPage. Затем я меняю разметку и связываю ее с этим классом.

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