Значение ASP.NET MVC AJAX не отображается - PullRequest
0 голосов
/ 01 июня 2010

Вид:

  function success(arg) {
        var obj = arg.get_response().get_object();                   
        if (obj.ErrorMessage === '') {
           var answer = document.createElement('div');
           answer.appendChild(document.createTextNode(obj.Answer));
           document.getElementById('answers').appendChild(answer);
       } else {
          document.getElementById('errors').innerHTML = obj.ErrorMessage;
       }
    }   

<% using (Ajax.BeginForm("EditOrganizationMeta", "Organization", new AjaxOptions { HttpMethod = "POST", OnSuccess = "success" })) { %>             

    <input type="submit" name="button<%=OrganizationMeta.vcr_MetaKey + Lang.int_LangId %>" value="Save" />
    <div id="errors"></div>
    <div id="answers"></div>

<% } %>

Контроллер:

[HttpPost]
[ValidateInput(false)]
public ActionResult EditOrganizationMeta(FormCollection collection)
{
   return Json(new { Answer = "Record Successfully Saved", ErrorMessages = "Title is required" });
}

Дело в том, что метод успеха в javascript не получает требуемые параметры. Там печать не определена. Есть ли проблема в методе JavaScript OnSuccess?

Ответы [ 2 ]

0 голосов
/ 01 июня 2010

Во-первых, быстрое предложение отладки:

function success(arg) {
    alert(arg);
    var obj = arg.get_response().get_object();
    ...

Это простая проверка, чтобы увидеть, получаете ли вы что-либо обратно в запросе.

Второе предложение:

Как это выглядит при просмотре источника страницы ...

<% using (Ajax.BeginForm("EditOrganizationMeta", 
    "Organization", new AjaxOptions { 
         HttpMethod = "POST", OnSuccess = "success" })) ...

Вы ищете бит, где он вызывает функцию под названием "success" - передает ли она данные в функцию? Если вы все еще застряли, обновите свой вопрос выводом HTML-кода для тега формы.

0 голосов
/ 01 июня 2010
function success() {
var url = '<%= Url.Action("EditOrganizationMeta", "Organization") %>';
           $.post(url, null, function(data) {
               alert(data["Answer"]);
           });
}

это работает для меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...