Сведения о вопросе

Fhohir

03:59, 15th August, 2020

Теги

Проверка данных разнесенной формы в структуре ASP.NET MVC

Просмотров: 487   Ответов: 6

Я играл с фреймворком ASP.NET MVC, и одна вещь, которая действительно сбивает меня с толку, - это то, как я должен выполнять проверку данных опубликованных форм на стороне сервера. Я предполагаю, что не отправлю сообщение обратно в тот же URL, но если это не так, как я могу повторно отобразить форму с введенными данными и сообщениями об ошибках? Кроме того, куда должна идти логика проверки? В модели или контроллере? Это, по-видимому, одна из немногих областей, где веб-формы намного сильнее (мне не хватает средств проверки).



  Сведения об ответе

PHPH

23:29, 20th August, 2020

Вот обзор потока в MVC:

  1. /new-визуализация представления "New", содержащего форму для заполнения пользователем
    • Пользователь заполняет форму и она отправляется на /create
    • Сообщение направляется в действие создать на вашем контроллере
    • В своем методе действий обновите модель с учетом данных, которые были разнесены.
    • Ваша модель должна сама себя проверить.
    • Ваш контроллер должен прочитать, является ли модель допустимой.
    • Если модель допустима, сохраните ее в БД. Перенаправление на /show для отображения представления show для вашего объекта.
    • Если модель недопустима, сохраните значения формы и сообщения об ошибках в TempData и снова перенаправьте на новое действие. Заполните поля формы данными из TempData и покажите сообщение(ы) об ошибке.

Рамки проверки помогут вам в этом процессе. Кроме того, я думаю, что команда ASP.NET MVC планирует структуру проверки для следующего предварительного просмотра.


  Сведения об ответе

piter

17:04, 17th August, 2020

Возможно, вы захотите взглянуть на последний пост ScottGu для ASP.Net prev 5. Он проходит через образец проверки, который очень интересен:

http://weblogs.asp.net/scottgu/archive/2008/09/02/asp-net-mvc-preview-5-and-form-posting-scenarios.aspx


  Сведения об ответе

VERSUION

21:49, 5th August, 2020

Насколько я могу судить, все до сих пор пытаются выяснить, как это сделать "standard". Тем не менее, проверьте последние сообщения Фила Хаака и Скотта Гатри на MVC, и вы найдете интересную информацию о том, как они это сделали. Когда я просто играл с ним для себя, я создал ModelBinder для класса данных LinqToSql, который я сгенерировал. Вы можете проверить этот пост, чтобы узнать, как собрать базовый ModelBinder:

Связыватель модели ASP.Net MVC

В вашем действии, если бы вы создали "Product" ModelBinder, вы бы просто объявили действие так:

публичных ActionResult новый(прод товара )

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

После этого в вашем методе GetValue() вы можете реализовать любую проверку, которую вы хотите, будь то с помощью исключений, regex, или все, что вы можете сделать вызов, как:

(ModelStateDictionary_name).AddModelError("form_element_id", "entered_value", "error_message");

Затем вы можете просто бросить <%= Html.ValidationSummary() %> в вашем представлении, чтобы отобразить все ваши ошибки.

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


  Сведения об ответе

ЯЯ__4

05:07, 21st August, 2020

Вы уже взглянули на это? http://www.codeplex.com/MvcValidatorToolkit

Цитата со страницы

Инструментарий валидатора предоставляет набор валидаторов для нового ASP.NET MVC фреймворк для проверки HTML форм на использование на стороне клиента и сервера устанавливает проверка.

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


  Сведения об ответе

FAriza

16:24, 7th August, 2020

В проекте замка есть модуль Castle.Components.Validator . Это очень agile и мощно. Он генерирует правила проверки на основе атрибутов модели (или любого другого источника) и даже способен генерировать проверку JS с использованием jQuery, проверки прототипа, fValidate и других. Конечно, это мудро, чтобы абстрактные валидатор за интерфейс IValidationEngine.


  Сведения об ответе

qwerty101

14:11, 1st August, 2020

Я просто изучаю фреймворк MVC, так что я не уверен, насколько это возможно, но из того, что я понимаю, у вас будет форма для представления, такого как Edit.aspx. Затем эта форма будет передавать контроллеру другой метод действия, например Update(), передавая содержимое формы, заданное в Edit.aspx в качестве параметров.

Update(int id, string name, string foo)

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

return View("Item", yourObject)


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться