Может ли MVC UpdateModel использовать Enterprise Library VAB?

... или я должен сказать, какой самый чистый способ использовать Enterprise Library 5 VAB с MVC?

В настоящее время я использую форму:

ActionResult Save(int id, FormCollection form)
{
   SomeModel model = somehowgetbyid(id);

   UpdateModel(model);

   somehowvalidate(model);

   if(ModelState.IsValid)
   {

etc...

Могут ли классы, украшенные VAB, автоматически проверяться моделью обновления, или мне нужно получить валидатор вручную и проверить его после этого вызова? Или есть еще лучшие способы?


person Carl R    schedule 11.04.2011    source источник


Ответы (2)


Здесь у вас есть хороший пример создания ModelValidatorProvider с корпоративной библиотекой VAB (Брэд Уилсон):

Это позволит вам использовать его любым способом (неявная проверка параметров действия или явные вызовы UpdateModel/TryUpdateModel).

person tpeczek    schedule 11.04.2011

Кажется, мне ничего не нужно было делать. MVC сам выбирает атрибуты VAB. Это для Enterprise Library 5.0.

Вау!

person Carl R    schedule 11.04.2011
comment
Ага. Это связано с тем, что атрибуты VAB наследуются от базового атрибута проверки DataAnnotations. MVC изначально работает с атрибутами DataAnnotations. - person Steven; 18.04.2011
comment
Я сделал наблюдение: если задействованы наборы правил, набор правил по умолчанию не вызывается. Это просто заставляет средство привязки модели пропустить атрибут проверки. - person Carl R; 12.05.2011