【发布时间】:2017-01-02 08:08:24
【问题描述】:
我有一个定义如下的 MVC 控制器方法:
[HttpPost]
public ActionResult EndBatchForConditions(string a, int b)
{
...
}
用 jquery 调用,例如:
$.ajax({
type: "POST",
url: url,
data: {
a: $form.find('#aCtl').val(),
b: $form.find('#bCtl').val()
},
success: function (data, textStatus, jqXHR) {
...
},
error: showError
});
这适用于我的本地,并且已经在我们的测试和生产机器上工作了大约 6 个月。
我们正在将其从其自己的网站转移到另一个网站下的应用程序,并已在测试服务器上进行了转移。这种方法给了我一个 404,其他一切都很好。另一种方法在具有相似参数的同一个控制器上以相同的方式调用,并且工作正常。我使用 Fiddler 验证了这两种方法的 url 和请求是否正确,并且完全相同。
我知道我们不允许使用 [FromBody] 属性的多个 POST 正文参数。这是拨打此电话的不正确方式吗?如果没有,我该如何解决这个问题?
【问题讨论】:
-
你的
url是你的亲戚吗? -
ajax 调用中 url 属性的“url”值是多少?
-
您能确认#bCtl 已找到并且有值吗?如果 b 为空,则 EndBatchForConditions 的签名不匹配(int b 不可为空),导致 404。将“int b”更改为“int”时是否有效? b'
标签: jquery ajax asp.net-mvc-routing