Помощь с сообщениями jquery ajax и сообщениями проверки на стороне сервера - PullRequest
1 голос
/ 06 апреля 2010

Кто-нибудь знает рабочий образец jaxery axax post с сообщениями о проверке, возвращаемыми с сервера, которые выделяют соответствующие поля формы?

Должна ли форма быть частичным представлением?Можно ли использовать модельное состояние?

Cheers

Ответы [ 2 ]

2 голосов
/ 06 апреля 2010

Как вы предложили, самый простой способ - поместить всю форму в частичное представление и выполнить ajax-запрос к действию контроллера, которое возвращает это частичное представление. Если вы используете помощники проверки в этом фрагменте, будут отображаться сообщения об ошибках.

Другой альтернативой является отправка в действие контроллера, которое помещает все сообщения об ошибках в массив JSON и передает его в представление. Затем с помощью JavaScript вы можете просмотреть сообщения об ошибках и показать их.

1 голос
/ 07 апреля 2010

Пример прилагается:

Частичная:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<div id="subContent">
<fieldset>
    <legend>Subscribe</legend>    
    <form id="subForm" method="post" action="<%= Url.Action("Subscribe") %>">
        <%= Html.ValidationSummary("Subscribe was unsuccessful. Please correct the errors and try again.") %>
        <input type="text" name="name" id="name" /><%= Html.ValidationMessage("name", "*") %>
        <input type="submit" />
    </form>
</fieldset>
</div>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
    $('#subForm').live('submit', function() {
        $.post($(this).attr('action'), $(this).serialize(), function(data) {
            $("#subContent").replaceWith($(data));
        });
        return false;
    });
});
</script>

Контроллер:

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Subscribe(string name)
        {
            ModelState.AddModelError("name", "You must enter a name");
            return PartialView("SubscribeForm");
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...