簡體   English   中英

不顯示ASP.NET MVC AJAX值

[英]ASP.NET MVC AJAX value not displaying

視圖:

  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是否存在問題?

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

這對我有用

首先,快速調試建議:

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

這是一個簡單的檢查,看您是否在查詢中得到了任何傳遞回給您的東西。

第二個建議:

當您查看頁面源代碼時,這實際上呈現為什么...

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

您正在尋找它調用名為“成功”的函數的位-它將數據傳遞給該函數嗎? 如果仍然遇到問題,請使用form標簽的HTML輸出更新您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM