2010-08-30 3 views
0

Перед тем, как голосовать или закрывать дублирующие вопросы, я хочу четко указать, что прочитал старые сообщения на этом сайте и другие. Проблема в том, что они являются старыми (по крайней мере) и не дают действительно хороших примеров.Обработка проверки на стороне сервера формами Ajax и ASP.Net MVC

В настоящее время я использую ASP.Net MVC 2.0 с Ajax.BeginForm и jQuery Validation проверкой на стороне клиента, которая работает отлично. Но я бы хотел, чтобы ошибки проверки на стороне сервера отображались как ошибки на стороне клиента (не обязательно удаленные). В настоящее время ошибки на стороне сервера применяются с ModelState.AddModelError.

Я использую код, который проходит что-то вроде этого:

<% Html.EnableClientValidation(); %> 

using (Ajax.BeginForm("Bar", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "result"})) { %> 
<fieldset> 
    <p> 
     <%: Html.TextAreaFor(model => model.Foo) %> 
     <%: Html.ValidationMessageFor(model => model.Foo) %> 
    </p> 
    <p> 
     <input type="submit"/> 
    </p> 
</fieldset> 

И, как я уже говорил, я установил ошибки с ModelState.AddModelError. В настоящее время я возвращаю валидацию-сводку об ошибке (которая не привязывается к элементам, которая их вызывает) и в противном случае возвращает мой результат.

До сих пор, я столкнулся несколько решений этой проблемы:

  • xVal (поддерживает удаленный сервер-валидацию)
  • Установите всю форму в RenderPartial и id='result'.
  • Возвращение некоторые JSON с результатом и без ошибок сообщений

Но там действительно не лучшее решение (возможно, в ASP.Net MVC 3.0)? Является xVal еще хорошим решением (не так много развития продолжается)?

Если я использую решение JSON, существует ли способ jQuery для назначения ошибок определенным элементам, которые имитируют 100% проверку на стороне клиента?

Если есть какое-либо лучшее решение, я готов переключить технологии, которые я использую.

Спасибо, Лассе Espeholt

+0

Я не думаю, что с момента выпуска MVC 2 произошло что-либо «новое», так как я не уверен, какую новую информацию вы ищете. – jfar

+0

@jfar xVal был создан для 1.0, но это все еще хороший выбор? Я вижу последнее обновление, которое было 1 год назад. Я ищу рекомендацию о том, какое решение я должен использовать из трех (или других решений). –

ответ

2

xVal хорошо! Я использую его с двумя проектами asp.net mvc 2 и прекрасно работает.

+0

Может ли он отступить, если javascript не включен? И мне нужно проверить поле для допустимого XML, которое требует некоторых вычислений. Насколько я понимаю, он будет проверять некоторые проверки на стороне сервера, прежде чем на самом деле сделать запрос формы-отправки, это правильно? Можно ли кэшировать результат, который вычисляется при проверке, чтобы он мог использоваться при вызове фактического представления? –

+0

xVal имеет поддержку для проверки, которая должна быть проверена на сервере. найдите функциональность удаленной проверки. не уверен в кешировании. – Patricia

Смежные вопросы