Jquery $ .post没有工作mvc4

时间:2013-07-10 19:37:19

标签: jquery asp.net-mvc-4

我无法将我的formdata发布回控制器。我正在尝试在MVC4应用程序中实现向导,该向导基于来自Nadeem Afana(http://afana.me/post/create-wizard-in-aspnet-mvc-3.aspx)的示例项目。 我已经下载了示例项目,它运行良好。在我的项目中,代码也正常工作,除了一件事,'post'不起作用(而提交后来的IS工作)。

我已经隔离了变量,如果我在Firefox的调试器中查看它们,它们看起来很好

var data = $("form").serialize();
var url = '@Url.Action("Confirm", "Product")';

$.post(url, data, function (r)
{
    // inject response in confirmation step
    $(".wizard-step.confirm").html(r);
});

但是,指定控制器上的操作不会被调用(我在其上设置了一个断点)

[HttpPost]
public ActionResult Confirm(ProductModel model)
{
   // my code ...
   return PartialView(model);
}

我也试过

$.post("/Product/Confirm", $("form").serialize(), function (r)

使用网址代替@ Url.Action ...无变化。

对于我的生活,我无法弄清楚我做错了什么或我错过了什么,我一直在谷歌上搜索整个下午。

2 个答案:

答案 0 :(得分:1)

您需要安装Fiddler(http://fiddler2.com/),然后使用它来查看正在发出的请求(如果有的话)以及它失败的原因。老实说,根据我的经验,在没有像Fiddler这样的工具的情况下尝试修复Ajax问题几乎是不可能的,当然也是一个很大的时间同步......

答案 1 :(得分:0)

为什么不尝试使用ajax调用的完整表示法,以防某些默认值搞砸了你?

mydata = $('form').serialize();
$.ajax({
  url: '/Product/Confirm',
  type: 'POST',
  dataType: 'html',
  data: mydata,
  success: function() {
    $(".wizard-step.confirm").html(r);
});

编辑1:

错误处理

error: function(response, status, error) {
  alert(error);
}