Asp.net MVC Ajax-форма, возвращающая Json методу javascript - PullRequest
3 голосов
/ 27 апреля 2010

У меня есть форма ajax, которая сохраняет объект в базе данных, а затем возвращает сообщение, подобное этому:

return Json(new {Message = "Message!"},
                            JsonRequestBehavior.AllowGet);

У нас все хорошо, но я не знаю, КАК я получу этот результат в представлении для отображения в модале jQuery. Моя форма ajax похожа на следующую, и я хочу получить результат по методу OnSuccess:

<%using (Ajax.BeginForm("Form", "Controller", new AjaxOptions() {  OnSuccess = "MethodThatIWantToGetTheJson" }))%>

Есть идеи?

Ответы [ 2 ]

5 голосов
/ 27 апреля 2010

Попробуйте это (взято из Как использовать помощник Ajax.BeginForm MVC с результатом JSON? ):

<%using (Ajax.BeginForm("Form", "Controller", new AjaxOptions() { OnComplete = "MethodThatIWantToGetTheJson" }))

<script type='text/javascript'>
    function MethodThatIWantToGetTheJson(content) {
        alert(content.get_response().get_object());
    }
</script>
2 голосов
/ 27 апреля 2010

Я буду использовать пример jQuery, потому что именно так я обычно запрашиваю что-либо, используя ASP.NET MVC. Если мы настроим запрос ajax, мы получим ответ как json.

$.ajax({
   url: 'Controller\Action\',
   type: 'POST',
   dataType: 'json'
   success: function(data, status)
   {
        // data will be your json result
        alert(data.Message);
   }
});

Затем вы можете просто поместить это в какую-то логику jQuery, например:

var message = $('<span/>');
message.html(data.Message);
message.dialog();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...