0

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

我已经隔离了变量,如果我在 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 而不是 @Url.Action ...没有变化。

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

4

2 回答 2

1

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

于 2013-07-11T12:43:51.970 回答
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);
}
于 2013-07-10T19:58:37.017 回答