Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery$.post不工作mvc4_Jquery_Asp.net Mvc 4 - Fatal编程技术网

Jquery$.post不工作mvc4

Jquery$.post不工作mvc4,jquery,asp.net-mvc-4,Jquery,Asp.net Mvc 4,我无法将表单数据发回控制器。我试图在MVC4应用程序中实现一个向导,该向导基于Nadeem Afana()的一个示例项目。 我已经下载了示例项目,它工作得很好。在我的项目中,代码也运行良好,除了一件事,“post”不起作用(而submitlater起作用) 我已经隔离了变量,如果我在Firefox的调试器中查看它们,它们看起来很好 var data = $("form").serialize(); var url = '@Url.Action("Confirm", "Product")'; $

我无法将表单数据发回控制器。我试图在MVC4应用程序中实现一个向导,该向导基于Nadeem Afana()的一个示例项目。 我已经下载了示例项目,它工作得很好。在我的项目中,代码也运行良好,除了一件事,“post”不起作用(而submitlater起作用)

我已经隔离了变量,如果我在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);
});
但是,未调用指定控制器上的操作(我已在其上设置了断点)

我也试过了

$.post("/Product/Confirm", $("form").serialize(), function (r)
使用URL而不是@URL.Action。。。没有变化


就我的一生而言,我不知道我做错了什么,或者我错过了什么,我整个下午都在谷歌上搜索尝试。

你为什么不试试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);
}

您需要安装Fiddler(),然后使用它来查看到底发出了什么请求(如果有的话)以及失败的原因。老实说,根据我的经验,在没有Fiddler之类的工具的情况下修复Ajax问题几乎是不可能的,而且肯定是一个大的时间同步

会发生什么?您在控制台中看到了什么?您没有其他方法签名的操作吗?@SLaks:我不确定您所说的控制台是什么意思,但当我查看FireFox调试器并在$.post行上设置断点,然后单击(退出)时,我可以看到它在事件的最后一个}处继续。它没有得到错误或异常(或者看起来是这样)@gustavodidomenico:我尝试调用其他操作,即使是带有空签名[HttpPost]public ActionResult JurTest(),但该操作没有被调用。@SLaks:我想你是指FF错误控制台。我刚找到它。我确实看到一条错误消息,不确定是否是原因:不推荐使用属性的指定属性。它总是返回真的。线路:4043我已经尝试过了,但似乎没有什么不同,这个动作没有被调用。我不确定我做错了什么,我可以看到它在调试器中命中了javascript代码的那一部分,但随后它似乎跳过了它…尝试添加一个错误选项,看看返回了什么。我将在我的回答中编辑一个示例谢谢你的建议,我尝试将代码段插入脚本,但脚本根本没有执行,因此我在调用时使用了try/catch,但没有“捕获”错误,它仍然跳到代码块的末尾,不要提及任何东西。尝试使用firebug或chrome developer工具之类的调试器,逐行检查代码。当它到达ajax调用时,它会逐行进行,然后突然跳到其中一个。它跳到的那个就是有错误的那个。让我知道它是哪一行,我会尽力帮助你。谢谢,我已经在使用FireFox中的调试器了。。。我刚刚安装了Fiddler,结果它找不到控制器/操作,在将它(在我的开发机器上)更改为它之后,它确实工作了。不知道为什么,但确实如此!现在我必须想办法解决这个问题,我不喜欢硬编码完整的URL,因为它可能会在生产环境中发生变化。感谢您的帮助。安装Fiddler后,/Products/Confirm返回404错误(找不到操作)。将URL更改为完整路径后,它工作了!!谢谢大家帮助我!
error: function(response, status, error) {
  alert(error);
}