2010-08-02 63 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调用及其包含的信息。