Как лучше всего реализовать проверку полей с помощью ASP.NET MVC?

StackOverflow https://stackoverflow.com/questions/16747

  •  08-06-2019
  •  | 
  •  

Вопрос

Я создаю общедоступный веб-сайт с использованием ASP.NET. В рамках конечного результата мне нужно создать сайт администратора для ввода данных о материалах, показанных на общедоступном сайте. Мне было интересно, какие методы или процедуры используют люди для проверки записей с помощью ASP. .NET MVC.

Это было полезно?

Решение

Взгляните на Плагин проверки JQuery этот плагин потрясающий, его легко реализовать, и он имеет все функции, которые вам могут понадобиться, включая удаленную проверку через AJAX.

Также можно найти образец метода контроллера MVC. здесь который в основном использует тип действия JsonResult, например:

public JsonResult CheckUserName(string username)
{
    return Json(CheckValidUsername(username));
}

Другие советы

@Chuck — вы пока не можете использовать элементы управления AjaxToolKit в ASP.NET MVC.Они работают только в модели обратной передачи страницы ASP.NET.

Обновлять:

С 20 августа 2008 г. вы можете использовать только файлы сценариев из набора инструментов управления Ajax внутри ASP.NET MVC Framework.Вот ссылка на выпускать.

Также, вот учебник об их использовании для создания всплывающего календаря Стивена Вальтера.

Я просто хочу убедиться, что всем предоставлена ​​правильная информация, если они читают эту тему.

IMO, использующая xVal с jQuery и DataAnnotationsModelBinder, является лучшей комбинацией.

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

Я нашел способ реализовать удаленную проверку на стороне клиента с помощью xVal/jQuery.validate, чтобы

  • Правила проверки остаются исключительно в вашей модели ASP.NET MVC.
  • Каждое правило проверки пишется только один раз и только в легко тестируемом коде C#.Здесь нет JavaScript или другого клиентского аналога.
  • Нет необходимости разветвлять или иным образом изменять xVal или jquery.validate.
  • Все, что вам нужно сделать для каждого нового правила проверки удаленной формы, — это получить его из базового класса, показанного в этой статье.

Я написал статья в блоге по этому описываю все подробности.

мне нравится использовать LiveValidation библиотеку в моих приложениях ASP.NET MVC.С его помощью я смог настроить способ проверки на клиенте и на сервере.Таким образом, пользователь будет знать, что что-то не так, еще до отправки формы, а затем будет использовать функциональные возможности сервера для других исключительных случаев.

Я начал с этого поста, который очень хорошо описывает, как настроить подобную настройку:

Проверка на стороне клиента на основе модели для ASP.NET MVC

Мой путь:

Я следую примеру, показанному в контроллере учетных записей, поставляемом с версией Preview 4, где поле проверяется в контроллере, и если возникает ошибка, массив строковых ошибок агрегируется для последующего отображения в том же представлении, с которого началось запрос.

Я также следил за мыслями Стивен Вальтер на MVC и я думаю эта почта Замечательно повторно заполнить поля отправленными данными, чтобы их можно было изменить перед повторной отправкой.

Что вы, ребята, используете?

Вы смотрели на элементы управления, предоставляемые AjaxToolKit?Я использовал MaskedEditExtender и ValidatorCalloutExtender и остался очень доволен результатами.

@Дейл, спасибо, что поправил меня в этом вопросе!Не знал об этом (только начал использовать инструментарий на прошлой неделе).Пожалуйста, не обращайте внимания на мое предложение :)

@Зак:Да, я тоже прочитал этот пост и, основываясь на этом посте, SO использует jQuery в качестве библиотеки javascript.Я не могу говорить за команду SO, но я обоснованно предполагаю, что, скорее всего, они используют функции ajax внутри jquery для обработки своих ajax-запросов.На самом деле это не так уж и плохо кодировать вручную, если вы используете библиотеку javascript, например jQuery, Опытный образец, и MooИнструменты.Затем вы используете новое возвращаемое значение JsonResult ActionResult для своих действий и выполняете против них запросы ajax.Эти библиотеки инкапсулируют для вас объекты XmlHttpRequest и упрощают выполнение ajax-вызовов и безопасность браузера.

Вы можете использовать Платформа проверки .net на codeplex, если вам нужна проверка как на стороне клиента, так и на сервере.Он генерирует код для плагина проверки jQuery на основе правил, определенных в модели.Кроме того, если вы используете «расширенные» функции платформы, вы можете вручную управлять настройками плагина проверки jQuery.Оформить заказ Краткое руководство по MVC.

Используйте гибрид проверки на стороне клиента и проверки на стороне сервера.

Для проверки на стороне клиента используется подход, описанный в ответ Дэниела Полларда кажется здравым.Проверка на стороне клиента не является обязательной, но обеспечит пользователю более приятный и отзывчивый интерфейс.

С другой стороны, проверка на стороне сервера должна быть обязательной:никогда не доверяйте данным клиента.Я бы определенно рассмотрел возможности, предоставляемые инфраструктурой ASP.NET MVC в предварительной версии 5 (как описано в ответ Мэтта Хинце),

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



class User {

    [Required]
    public string Name{get;set;}

    [Email][Required]
    public string Email {get;set;}
}

И соответствующий код Javascript будет сгенерирован для выполнения проверки клиента, а средство проверки на стороне сервера будет проверять отправленную вами форму.

Прочтите пост более здесь

@Чак - Не беспокойся.Для этого и нужен SO.Вы чему-то учитесь, и человек, задающий вопрос, чему-то учится.

Как AJAX обрабатывается при переполнении стека?JQuery делает это?

  • Щелкните правой кнопкой мыши на странице
  • Найдите «Просмотр исходного кода страницы» во всплывающем меню.
  • Нажмите на него

:-)

Если вы хотите использовать готовые функциональные возможности, но хотите их расширить, взгляните на мой ответ здесь на вопрос о IDataError.

В основном я использую аннотации к данным и связыватель моделей для более сложной логики.Я обнаружил, что это довольно чистый способ, позволяющий мне оставаться в рамках того, что предоставляет MS.

Я объясняю, как использовать связыватель моделей, чтобы добавить проверку вашей модели на уровне класса без необходимости использования IDataError - что, как вы видели здесь, может быть довольно неуклюжим.Он по-прежнему позволяет использовать атрибуты [Обязательные] или любые другие имеющиеся у вас пользовательские атрибуты проверки, но позволяет добавлять или удалять отдельные ошибки модели.Для получения дополнительной информации о том, как использовать аннотации к данным, я настоятельно рекомендую этот пост от Скотта Гу.

Одним из способов реализации проверки в ASP.NET MVC является использование аннотаций данных наряду с проверкой на стороне клиента.Этот статья показывает, как мы можем сделать это для классов моделей, созданных инфраструктурой сущности.

Дейл Рэган написал:

Вы не можете использовать элементы управления AjaxToolKit в ASP.NET MVC.

Как AJAX обрабатывается при переполнении стека?JQuery делает это?В своем посте Coding Horror Секреты JavaScript-ниндзя Джефф писал об использовании JQuery при написании Stack Overflow.

Конечно, они не кодировали его вручную.Я сделал это однажды со всем JavaScript XMLHttpRequest, когда примерно в 2005 году стал популярен термин «AJAX».Это был кошмар.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top