Я строю общедоступный веб-сайт с использованием ASP.NET, и как часть поставляемого мне продукта мне нужно создать сайт администратора для ввода данных, показанных на общедоступном сайте, мне было интересно, какие методы или процедуры используют люди для проверки записей с использованием ASP .NET MVC.
Взгляните на плагин JQuery Validation. Этот плагин удивителен, он прост в реализации и обладает всеми функциями, которые вам когда-либо могут понадобиться, включая удаленную проверку через AJAX.
Кроме того, образец метода контроллера MVC , можно найти здесь , который в основном используется JsonResult типа действия , как:
public JsonResult CheckUserName(string username)
{
return Json(CheckValidUsername(username));
}
Мой любимый способ - выполнять проверку клиента и сервера с использованием атрибутов на основе модели. Я написал небольшой пост об этом и также выпустил исходный код, который в основном позволит вам создать такой класс
class User {
[Required]
public string Name{get;set;}
[Email][Required]
public string Email {get;set;}
}
И соответствующий код javascript будет сгенерирован для выполнения проверки клиента, а бегущий на стороне сервера будет проверять вашу отправленную форму.
Прочитайте пост здесь
IMO, использующий xVal с jQuery и DataAnnotationsModelBinder, является лучшей комбинацией.
Однако иногда существуют правила проверки, которые не могут быть полностью проверены на стороне клиента, поэтому необходимо использовать удаленную проверку на стороне клиента.
Я нашел способ реализовать удаленную проверку на стороне клиента с помощью xVal / jQuery.validate, чтобы
- Правила проверки остаются исключительно в вашей модели ASP.NET MVC
- Вы пишете каждое правило валидации только один раз и только в легко тестируемом коде C #. Там нет JavaScript или другой стороны клиента.
- Нет необходимости разветвлять или иным образом изменять xVal или jquery.validate
- Все, что вам нужно сделать для каждого нового правила проверки удаленной формы, это получить из базового класса, показанного в этой статье.
Я написал в блоге статью, описывающую все детали.