Я играю с ASP.NET MVC Framework, и одна вещь, которая меня действительно смущает, это то, как я должен делать проверку данных формы на стороне сервера. Я предполагаю, что я не буду возвращаться на тот же URL, но если это не так, то как мне повторно отобразить форму с введенными данными и сообщениями об ошибках? Также, где должна находиться логика валидации? В модели или в контроллере? Кажется, это одна из немногих областей, где веб-формы намного сильнее (мне не хватает элементов управления валидацией).
Вот'обзор потока в MVC:
Фреймворки валидации помогут вам в этом процессе. Кроме того, я думаю, что команда ASP.NET MVC планирует фреймворк валидации для следующей предварительной версии.
Вы могли бы хотеть смотреть на ScottGu' s последняя почта для предыдущих 5 ASP.Net. Это идет через образец проверки, который очень интересен:
Насколько я могу сказать, что все все еще пытаются выяснить " standard" способ сделать его. Это сказало, определенно проверяют Фила Хээка и Скотта Guthrie' s последние посты на MVC и you' ll находят некоторую интересную информацию о том, как они сделали. Когда я просто играл вокруг с ним для меня, я создал ModelBinder для класса данных LinqToSql, который я произвел. Вы можете проверить эту почту, чтобы узнать, как соединить основной ModelBinder:
В Вашем действии, если Вы создали " Product" ModelBinder Вы просто объявили бы действие как так:
общественный Новый ActionResult (напоминание продукта)
И образцовый переплет будет заботиться о назначении отправленных данных к свойствам объектов целый you' ve построил его правильный так или иначе.
После этого в Вашем GetValue () метод Вы можете осуществить любую проверку, которую Вы хотите, ли, используя exception' s, regex' s, или независимо от того, что Вы можете позвонить как:
(ModelStateDictionary_name).AddModelError (" form_element_id" " entered_value" " error_message");
Тогда Вы можете просто бросить < % = HTML. ValidationSummary () % > с Вашей точки зрения, чтобы показать все Ваши ошибки.
Для клиентской проверки я просто использовал jQuery. После того, как Вы будите основной типовой набор, хотя Вы можете начать делать некоторые интересные вещи, объединяющие все, что с Частичными Взглядами и Аяксом звонит.
Вы взглянули на это? http://www.codeplex.com/MvcValidatorToolkit
Процитировано со страницы
Инструментарий валидатора предоставляет набор валидаторов для нового ASP.NET MVC фреймворка для проверки HTML форм на клиенте и на стороне сервера, используя наборов валидации.
Боюсь, что кто-то более подкованный в MVC, чем я, должен сказать, где в архитектуре вы должны размещать вещи.
Я тоже только изучаю фреймворк MVC, поэтому не уверен, насколько это верно, но, насколько я понимаю, у вас есть форма в представлении, например, Edit.aspx. Эта форма затем посылает в контроллер другой метод действия, такой как Update(), передавая в качестве параметров содержимое формы, которое вы установили в Edit.aspx.
Update(int id, string name, string foo)
Вы можете выполнить валидацию в этом методе. Если все в порядке,
return View("Item", yourObject)
Есть [Замок. Компоненты. Контрольное устройство] [1] модуль в проекте Замка. It' s очень проворный и сильный. Это производит правила проверки на основе признаков модели (или любой другой источник) и даже способный произвести проверку JS, используя jQuery, Проверку Прототипа, fValidate и другой. Конечно, it' s мудрый к абстрактному контрольному устройству далеко позади интерфейса IValidationEngine.
[1]: http://209.85.135.104/искать? q=cache:EzaP2dgUM9cJ:hammett.castleproject.org / % 3Fp%3D114+Castle. Компоненты. Validator& hl=ru& ct=clnk& cd=2& gl=ru& client=firefox-a