2010-06-01 110 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"]); 
      }); 
} 

這對我的作品