Каков наилучший способ проверки полей с использованием ASP.NET MVC?
5711 просмотра
16 ответа
Я строю общедоступный веб-сайт с использованием ASP.NET, и как часть поставляемого мне продукта мне нужно создать сайт администратора для ввода данных, показанных на общедоступном сайте, мне было интересно, какие методы или процедуры используют люди для проверки записей с использованием ASP .NET MVC.
Автор: samiq Источник Размещён: 17.05.2019 02:53Ответы (16)
26 плюса
Взгляните на плагин JQuery Validation, этот плагин удивителен, он прост в реализации и обладает всеми функциями, которые вам когда-либо могут понадобиться, в том числе удаленной проверкой через AJAX.
Кроме того, образец метода контроллера MVC , можно найти здесь , который в основном используется JsonResult типа действия , как:
public JsonResult CheckUserName(string username)
{
return Json(CheckValidUsername(username));
}
Автор: Daniel Pollard
Размещён: 25.08.2008 03:04
6 плюса
@Chuck - Вы еще не можете использовать элементы управления AjaxToolKit в ASP.NET MVC. Они работают только в модели обратной передачи страницы ASP.NET.
Обновить:
С 20 августа 2008 года вы можете использовать только файлы сценариев Ajax Control Toolkit внутри ASP.NET MVC Framework. Вот ссылка на релиз .
Кроме того, вот руководство по их использованию для создания всплывающего календаря от Стивена Вальтера.
Я просто хочу убедиться, что всем дана правильная информация, если они читают эту ветку.
Автор: Dale Ragan Размещён: 19.08.2008 08:146 плюса
IMO, использующий xVal с jQuery и DataAnnotationsModelBinder, является лучшей комбинацией.
Однако иногда существуют правила проверки, которые не могут быть полностью проверены на стороне клиента, поэтому вам необходимо использовать удаленную проверку на стороне клиента.
Я нашел способ реализовать удаленную проверку на стороне клиента с помощью xVal / jQuery.validate, чтобы
- Правила проверки остаются исключительно в вашей модели ASP.NET MVC
- Вы пишете каждое правило проверки только один раз и только в легко тестируемом коде C #. Там нет JavaScript или другой стороны клиента.
- Нет необходимости разветвлять или иным образом изменять xVal или jquery.validate
- Все, что вам нужно сделать для каждого нового правила проверки удаленной формы, это получить из базового класса, показанного в этой статье.
Я написал в блоге статью, описывающую все детали.
Автор: Adrian Grigore Размещён: 21.06.2009 11:595 плюса
Мне нравится использовать библиотеку LiveValidation в моих приложениях ASP.NET MVC. С его помощью я смог настроить способ проверки на клиенте и на сервере. Таким образом, пользователь узнает, что что-то не так, еще до отправки формы, а затем использует функциональность на стороне сервера для других отдаленных случаев.
Я начал с этого поста, который отлично справляется с настройкой подобной установки:
Основанная на модели проверка на стороне клиента для ASP.NET MVC
Автор: Dale Ragan Размещён: 19.08.2008 07:324 плюса
В Preview 5 появилось несколько новых функций проверки.
Автор: Matt Hinze Размещён: 02.09.2008 05:331 плюс
Мой путь:
Я следую примеру, показанному в контроллере учетных записей, который поставлялся с выпуском Preview 4, где в контроллере есть поле check, и если обнаружена ошибка, то массив строковых ошибок агрегируется для последующего показа в том же представлении, которое запустило запрос.
Я также следил за мыслями Стивена Уолтера о MVC, и я думаю, что этот пост является отличным, чтобы заполнить поля данными, представленными для его изменения, прежде чем отправить его снова.
Что вы, ребята, используете?
Автор: samiq Размещён: 19.08.2008 07:101 плюс
Вы смотрели на элементы управления, поставляемые с AjaxToolKit? Я использовал MaskedEditExtender и ValidatorCalloutExtender и был очень доволен результатами.
@Dale - спасибо, что поправили меня в этом! Не знал об этом (только начал использовать инструментарий на прошлой неделе). Пожалуйста, не обращайте внимания на мое предложение :)
Автор: Chuck Размещён: 19.08.2008 07:361 плюс
@ Зак : Да, я тоже читал этот пост и, основываясь на этом посте, SO использует jQuery в качестве библиотеки javascript. Я не могу говорить за команду SO, но мое образованное предположение состоит в том, что они, скорее всего, используют функции ajax внутри jquery для обработки своих запросов ajax. На самом деле это не так уж плохо, если вы используете библиотеку javascript, такую как jQuery , Prototype и MooTools . Затем вы используете новое возвращаемое значение JsonResult ActionResult для своих действий и делаете запросы Ajax против них. Эти библиотеки инкапсулируют объекты XmlHttpRequest для вас и облегчают выполнение вызовов ajax и безопасность браузера.
Автор: Dale Ragan Размещён: 19.08.2008 08:501 плюс
Вы можете использовать среду проверки .net в codeplex, если вам нужна проверка на стороне клиента и сервера. Он генерирует код для плагина проверки jQuery на основе правил, определенных в модели. Кроме того, если вы используете расширенные функциональные возможности фреймворка, вы можете вручную управлять настройками плагина jQuery validate. Оформить заказ быстрого запуска MVC .
Автор: Dane O'Connor Размещён: 21.08.2008 04:571 плюс
Используйте гибрид проверки на стороне клиента и на стороне сервера.
Для проверки на стороне клиента подход, описанный в ответе Дэниэла Полларда, кажется разумным. Проверка на стороне клиента не является обязательной, но предоставит пользователю более приятный и отзывчивый опыт.
Проверка на стороне сервера, с другой стороны, должна быть обязательной: никогда не доверяйте вводу от клиента. Я определенно рассмотрю возможности, предоставляемые платформой ASP.NET MVC в Preview 5 (как описано в ответе Мэтта Хинце ),
Автор: Kasper Размещён: 07.09.2008 10:321 плюс
Мой любимый способ - выполнять проверку клиента и сервера с использованием атрибутов на основе модели. Я написал короткий пост об этом и также выпустил исходный код, который в основном позволит вам создать такой класс
class User {
[Required]
public string Name{get;set;}
[Email][Required]
public string Email {get;set;}
}
И соответствующий код javascript будет сгенерирован для выполнения проверки клиента, а бегущий на стороне сервера будет проверять вашу отправленную форму.
Прочитайте пост здесь
Автор: Emad Размещён: 02.11.2008 03:260 плюса
@ Чак - Не беспокойся. Вот для чего ТАК. Вы чему-то учитесь, а человек, задающий вопрос, чему-то учится.
Автор: Dale Ragan Размещён: 19.08.2008 08:550 плюса
Как AJAX обрабатывается при переполнении стека? JQuery это делает?
- Щелкните правой кнопкой мыши на странице
- Найдите «View Source Source» во всплывающем меню
- Нажмите его
:-)
Автор: Orion Edwards Размещён: 25.08.2008 02:200 плюса
Если вы хотите использовать готовые функциональные возможности, но хотите расширить их, взгляните на мой ответ здесь на вопрос о IDataError.
В основном я использую аннотации данных и связыватель моделей для более сложной логики. Я нашел, что это довольно чистый способ и позволяет мне оставаться в рамках того, что предоставляет MS.
Я объясняю, как использовать связыватель моделей для добавления проверки на уровне класса вашей модели без необходимости использования, IDataError
что, как вы видели здесь, может быть довольно неуклюжим. Он по-прежнему позволяет использовать атрибуты [Обязательные] или любые другие пользовательские атрибуты проверки, но позволяет добавлять или удалять отдельные ошибки модели. Чтобы больше узнать о том, как использовать аннотации данных, я настоятельно рекомендую этот пост от Скотта Гу .
0 плюса
Одним из способов реализации проверки в ASP.NET MVC является использование аннотаций данных вместе с проверкой на стороне клиента. В этой статье показано, как мы можем сделать это для сгенерированных каркасом модели классов объектов.
Автор: Bikal Lem Размещён: 09.08.2010 09:140 плюса
Дейл Раган написал:
Вы не можете использовать элементы управления AjaxToolKit в ASP.NET MVC
Как AJAX обрабатывается при переполнении стека? JQuery это делает? В своем посте «Кодирующий ужас» « Секреты JavaScript» Ниндзя Джефф писал об использовании JQuery при написании переполнения стека.
Конечно, они не кодировали это вручную. Я сделал это однажды со всем XMLHttpRequest JavaScript, когда термин «AJAX» был популяризирован в 2005 году. Это был кошмар.
Автор: Zack Peterson Размещён: 19.08.2008 08:26Вопросы из категории :
- c# Преобразовать десятичную в двойную?
- c# Как рассчитать чей-то возраст в C #?
- c# Как вы сортируете словарь по значению?
- c# В чем разница между int и Integer в Java и C #?
- c# Как создать новый экземпляр объекта из Типа
- c# Datatable против Dataset
- asp.net-mvc Каков наилучший способ проверки полей с использованием ASP.NET MVC?
- asp.net-mvc От клиента было обнаружено потенциально опасное значение Request.Form
- asp.net-mvc Проверка на стороне клиента ASP.NET MVC
- asp.net-mvc ASP.NET MVC - передача параметров в контроллер
- asp.net-mvc Разница между ViewData и TempData?
- asp.net-mvc Почему AuthorizeAttribute перенаправляет на страницу входа в систему при сбое аутентификации и авторизации?
- validation Валидация клиентской стороны ASP.Net
- validation Проверить перечисление значений
- validation Каков наилучший способ проверки XML-файла по сравнению с XSD-файлом?
- validation Проверка десятичных чисел в JavaScript - IsNumeric ()
- validation Как проверить адрес электронной почты в JavaScript