СУХАЯ удаленная проверка в ASP.NET MVC 3


person Andrei Rînea    schedule 23.04.2011    source источник


Ответы (3)


Это «можно» сделать ... но вам нужно будет написать свой собственный настраиваемый атрибут, который в основном испускается для клиентской стороны и проверяется на стороне сервера. Для меня я просто извлекаю код проверки в метод и проверяю на сервере. Что-то похожее появилось недавно:

Запретить форму от отправки при использовании ненавязчивой проверки в ASP.NET MVC 3

Интересно, нельзя ли наследовать от удаленного атрибута и добавить к ним свой собственный код на стороне сервера. хм.. может быть, мне придется попробовать это.

Я был бы счастлив, если бы кто-то здесь сказал, что они уже сделали это :)

person Adam Tuliper - MSFT    schedule 23.04.2011
comment
Я сделал это! Мне нравится вызов :) metaltheater.com/tech/technical / - person Rocklan; 18.03.2013

См. мою статью MSDN Как реализовать удаленную проверку в ASP. NET MVC Я использую код проверки удаленного клиента в методе HttpPost Create для проверки серверной части, когда JavaScript отключен.

[HttpPost]
    public ActionResult Create(CreateUserModel model) {

        // Verify user name for clients who have JavaScript disabled
        if (_repository.UserExists(model.UserName)) {
            ModelState.AddModelError("UserName", ValidationController.GetAltName(model.UserName, _repository));
            return View("Create", model);
        }
person RickAndMSFT    schedule 06.05.2011

Я сделал это, это довольно длинное решение, поэтому все это доступно в моем блоге здесь:

http://www.metaltheater.com/tech/technical/fixing-the-remote-validation-attribute/

Мне пришлось создать новый подкласс класса RemoteAttribute, создать свой собственный биндер модели, наследуя от DefaultModelBinder, а затем использовать отражение для вызова валидатора на контроллере.

person Rocklan    schedule 18.03.2013