2010-12-12 5 views
0

В книге Professional MVC, написанной Hanselman/Guthrie, они показывают, как проверять форму, используя встроенные вспомогательные методы и анотации данных. Это работает, но требует много ручного шаблона.Проверка формы с использованием MVC3?

Есть ли новый/более простой способ проверки ввода с использованием встроенной сантехники?

Я использую шаблон хранилища с платформой Entity Framework.

Спасибо!

+4

Что вы подразумеваете под типовым кодом? Я думаю, что подход аннотаций данных очень краткий, особенно используя ваши собственные производные реализации, такие как EmailAddress, StrongPassword и т. Д. –

+0

Я согласен с @ The Flower Guy здесь, во-первых, что вы подразумеваете под _boilerplate code_? Вторым использованием DataAnnotations является предпочтительный способ перехода с MVC, особенно учитывая, что вы можете написать свои собственные реализации (например, этот пример (http://rlm.cc/hnRC0K) в моем блоге) – PsychoCoder

+0

Вы также можете рассмотреть возможность использования ViewModels для своего Просмотр и использование аннотаций данных на них. Тогда вам не придется комментировать ваши модели напрямую, если это вас беспокоит. Я также согласен с FlowerGuy в этом. – ElvisLives

ответ

0

Как уже упоминалось в комментариях, использование Data Annotations - это новый/простой способ проверки. Самое приятное в использовании аннотаций данных - это то, что вы можете проверять свои модели каждый раз, когда захотите, в любом месте приложения. Я вообще настроить общий сервис, чтобы сделать следующим образом:

public class ValidationService<T> : IValidationService<T> 
{ 
    public List<ValidationResult> Validate(T obj) 
    { 
     var results = new List<ValidationResult>(); 
     Validator.TryValidateObject(
      obj, 
      new ValidationContext(obj, null, null), 
      results, 
      true); 
     return results; 
    } 
} 

Тогда для проверки модели:

var service = new ValidationsService<MyClass>(); 
var errors = service.Validate(myobject); 

Учитывая, сколько функциональности вы получите для такого небольшого количества кода, аннотации данных являются довольно мощными , особенно если учесть, насколько легко писать собственные атрибуты проверки.

0

Если вы собираетесь использовать ViewModels я настоятельно рекомендую с помощью AutoMapper из souceforge

Я согласен со всеми, что DataAnnotation велик - его способность к интеграции с JQuery, чтобы предложить проверки на стороне клиента без необходимости писать ни одной строки jQuery продал его мне через секунду!

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