Проверка модели ASP.NET MVC 2 вне контекста ваших представлений - PullRequest
2 голосов
/ 10 февраля 2010

Я читал этот пост в блоге Проверка правильности новой модели ASP.NET MVC 2 и показалась мне довольно крутой. Я вижу значение в сохранении СУХОГО, добавив пару атрибутов к свойству класса, а затем автоматически получим проверку на стороне клиента и сервера (при условии, что ваш контроллер проверяет допустимые модели).

Тем не менее, представьте себе приложение ASP.NET MVC в более широком контексте. Возможно, у меня есть приложение ASP.NET MVC с этой проверкой и все такое, но затем я хочу показать что-то новым клиентам, таким как приложения для iPhone или Android (а не только для мобильного браузера). Мне пришлось бы написать несколько веб-сервисов или что-то, что использует те же базовые репозитории / сервисы, что и мое приложение ASP.NET MVC. Могу ли я повторно использовать этот материал для проверки?

Разве мне не пришлось бы переписывать проверку на стороне клиента? Я не вижу выхода из этого, так как я буду отправлять сериализованные объекты для десериализации в классы не-C # из Objective-C или чего-либо другого.

Разве мне не пришлось бы переписывать проверку на стороне сервера? Есть ли какой-нибудь способ для меня вызвать в ModelState объект вне контекста контроллера ASP.NET MVC (например, как часть веб-сервисов, которые я создаю для общения с мобильными клиентами).

1 Ответ

1 голос
/ 10 февраля 2010

Если вы говорите о аннотациях данных , на самом деле они не являются частью MVC. Таким образом, вы можете использовать их в любом другом месте.

Есть другие работы по их расширению - annotationscontrib является одним из них , и я думаю, вы можете посмотреть, как, например, реализован ModelBinder, и написать свой собственный сервис, используя это.

xVal Project , возможно, выполняет те же функции, что и вы, - преобразовывает правила проверки в Javascript. К сожалению, я не уверен, сколько вам нужно усилий, чтобы адаптировать xVal для вашего проекта или переписать его.

Что касается выполнения проверок для аннотированных классов, можно использовать Validator (спасибо womp )

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