2010-08-02 64 views
1

即使成功返回我請求的模型,我仍未收到警報?

function editaddress(id) { 
     $.ajax({ 
      type: "POST", 
      url: "/Address/Edit/" + id, 
      success: function (msg) { 
       alert(msg); 
      } 
     }); 
    } 

什麼是msg?我認爲這可能是一個JSON對象?當我調試時,/Address/Edit/1返回View(address);,但我如何在我的視圖中讀取該對象?我是否需要製作其他帖子?

該腳本的局部視圖是一個jQuery UI對話框列表地址,我想彈出另一個 jQuery UI對話框在其上方編輯點擊的記錄。所以,我需要以某種方式讀取返回的模型對象。我該怎麼做呢?

編輯:

public ActionResult Edit(int id) 
    { 
     Address address = dc.Addresses.Where(x => x.AddressID == id).First(); 

     return View(address); 
    } 
+0

您可以發佈您的控制器actionresult嗎? 你指定什麼作爲返回行動,被稱爲 – Nealv 2010-08-02 22:24:27

回答

1

使用螢火蟲,控制檯。這樣你就可以看到你的帖子,查看你傳遞的參數,並查看返回的響應。

響應將是您的「消息」變量

+1

謝謝你。我能夠確定視圖不能正確呈現,因爲我已經刪除了編輯視圖。 – 2010-08-03 14:59:54

+0

:)是的,螢火蟲可以成爲救星。 這些是我在ajax文章出現問題時所採取的步驟: - 檢查jquery net是否加載了所有內容。 - 檢查jquery控制檯以查看:參數,發佈,響應。 - 調試控制器並進入每個步驟以查看其中斷位置。 – Nealv 2010-08-03 15:47:14

1

味精是從POST格式的URL "/Address/Edit/" + id返回的數據。它看起來不像你正在傳遞任何數據的網址爲"/Address/Edit/" + id。如果數據包含在id中,並且您希望將其包含在URL中,則應使用GET。如果該網址爲'「/Address/Edit.html」and you want to pass it id with POST, you should include data:`in your jQuery。

  1. 我建議你最初輸入整個URL只是爲了讓你的生活更輕鬆。從http://.whatever。一旦你得到了這樣的工作,你可以玩弄開始,但看起來你可能會錯過文件類型。
  2. 您必須格式化您的數據,包括其與data:

要使用後傳遞數據和jQuery您使用data:"variable1=value1&variable2=value2 ... ",下面它的使用你的代碼所示的格式。

$.ajax(
{ 
    type: "POST", 
    url: "http://www.yourdomain.com/Address/Edit.html", 
    data: "id="+id, 
    success: function (msg) 
    { 
     alert("Data saved: " + msg); 
    } 
}); 

看看例子上the jQuery.ajax() page

你要通過在data:的數據,你不能傳遞數據的URL如果你使用POST,你只能做這麼用得到。

+0

如果我的動作方法確實返回一些東西,我不應該得到某種警覺? – 2010-08-02 22:08:11

+0

@大衛 - 是的。但是你需要在'「/ Address/Edit /」+ id'處包含代碼以供我們理解。它看起來並不像你傳遞任何數據。你確定要使用POST而不是GET嗎? – 2010-08-02 22:12:56

+0

查看我編輯的動作代碼 – 2010-08-02 22:16:06

0

它也有助於使用Firefox的Firebug,並使用控制檯。它會顯示返回的AJAX調用及其包含的信息。