Проверка отправленных данных формы в платформе MVC ASP.NET

Как отметил @FelixKling, наиболее вероятным сценарием является то, что узлы, которые вы ищете, еще не существуют.

Однако современные методы разработки часто могут манипулировать элементами документа за пределами дерева документов либо с DocumentFragments, либо просто отсоединением / повторным подключением текущих элементов напрямую. Такие методы могут использоваться как часть шаблонов JavaScript или для предотвращения чрезмерных операций перерисовки / переплавки, в то время как элементы, о которых идет речь, сильно изменяются.

Аналогично, новая функциональность «Теневой DOM» развертывается в современных браузерах позволяет элементам быть частью документа, но не обрабатываться запросом document.getElementById и всеми его методами sibling (querySelector и т. д.). Это делается для инкапсуляции функциональных возможностей и, в частности, скрыть его.

Опять же, скорее всего, элемент, который вы ищете, просто (пока) в документе, и вы должны сделать, как предлагает Феликс , Тем не менее, вы также должны знать, что это все чаще является не единственной причиной того, что элемент может быть необоснованным (временно или постоянно).

10
задан tereško 15 March 2013 в 05:10
поделиться

6 ответов

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

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

4
ответ дан 3 December 2019 в 18:37
поделиться

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

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

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

12
ответ дан 3 December 2019 в 18:37
поделиться

Вы смотрели на это? http://www.codeplex.com/MvcValidatorToolkit

Заключенный в кавычки из страницы

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

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

2
ответ дан 3 December 2019 в 18:37
поделиться

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

Update(int id, string name, string foo)

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

return View("Item", yourObject)
0
ответ дан 3 December 2019 в 18:37
поделиться

Насколько я могу сказать, что все все еще пытаются выяснить "стандартный" способ сделать его. Это сказало, определенно проверяют Phil Haack и последние сообщения Scott Guthrie на MVC, и Вы найдете некоторую интересную информацию о том, как они сделали. Когда я просто играл вокруг с ним для меня, я создал ModelBinder для класса данных LinqToSql, который я генерировал. Можно проверить это сообщение, чтобы узнать, как соединить основной ModelBinder:

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

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

общедоступный Новый ActionResult (напоминание продукта)

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

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

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

Затем можно просто бросить <% = HTML. ValidationSummary () %> в Вашем представлении для отображения всех ошибок.

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

3
ответ дан 3 December 2019 в 18:37
поделиться

Существует Замок. Компоненты. Модуль блока проверки допустимости в проекте Замка. Это является очень гибким и мощным. Это генерирует правила проверки на основе образцовых атрибутов (или любой другой источник) и даже способный генерировать проверку JS с помощью jQuery, Опытной Проверки, fValidate и другого. Конечно, это мудро к абстрактному блоку проверки допустимости далеко позади интерфейса IValidationEngine.

0
ответ дан 3 December 2019 в 18:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: