2010-06-01 111 views
0

查看:ASP.NET MVC AJAX值不显示

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中的成功方法没有得到所需要的参数。它在那里打印undefined。 javascript方法OnSuccess中有问题吗?

回答

0

首先,快速调试建议:

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

这是一个简单的检查,看看你得到任何东西在查询中传回给您。

第二个建议:

什么,这实际上呈现为,当您查看网页的源代码...

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

您正在寻找它调用该函数的位题为“成功“ - 它是否将数据传递给函数?如果仍然卡住,请使用表单标记的呈现HTML输出更新您的问题。

0
function success() { 
var url = '<%= Url.Action("EditOrganizationMeta", "Organization") %>'; 
      $.post(url, null, function(data) { 
       alert(data["Answer"]); 
      }); 
} 

这对我的作品