Это действительно зависит от того, откуда вы получаете контент для отображения после публикации формы. Сводная информация о проверке выполняется на сервере, поэтому вы должны выполнить эту работу.
В качестве примера я использовал некоторое частичное содержимое в файле .ascx для визуализации формы. Вы получаете форму на странице в первый раз, вызвав действие непосредственно с Html.RenderAction
Ваш файл Ajax.BeginForm
и т. Д. Будет в файле .ascx. Затем вызовите его прямо в действии.
Когда Ajax-вызов выполняется из браузера, вы можете отправить его на то же действие. Таким образом, вы можете выполнить все проверки на стороне сервера, как обычно. Вы должны настроить вызов Ajax, чтобы заменить исходную форму новым html, который возвращается действием.
Одна вещь, о которой вы должны знать, это то, что заменяющий JavaScript заменит содержимое элемента, а не самого элемента, поэтому запомните нам идентификатор окружающего элемента.
Извиняюсь, если это немного запутанно, если вы хотите больше подробностей, просто прокомментируйте, и я уточню соответствующие биты.
Дополнительная информация:
Все это предполагает, что вы выполняете всю проверку на сервере.
У вас будет представление, в котором есть все содержимое страницы, а затем некоторое частичное содержимое в файле .ascx. Именно здесь живет ваша форма ajax, ее необходимо настроить для замены содержимого на id. Проще всего, если оно имеет то же имя, что и действие, которое будет вызывать ваш ajax.
Вы можете использовать Html.RenderAction
, чтобы получить его в представлении. Вы также можете передать данные с другими версиями того же метода. По сути, вы называете это так же, как ваш AJAX-код.
Вам нужно будет обернуть все в div с набором идентификаторов. Используйте этот идентификатор в частичном качестве содержимого для замены.
Когда вы визуализируете страницу, будет вставлен HTML-код для формы и все элементы Ajax.
Когда вызывается действие ajax, частичное содержимое будет возвращено с любой выполненной проверкой. Он заменит содержимое div, которому вы дали идентификатор.
Вы можете использовать разные версии действия, используя атрибуты [AcceptVerbs(HttpVerbs.Get)]
и [AcceptVerbs(HttpVerbs.Post)]
Основная проблема этого метода в том, что он не самодостаточен, div с id является внешним по отношению к частичному.