尝试从jQuery提交异步调用时,在有效的URL上获取404

Cas*_*ton 2 javascript c# ajax asp.net-mvc jquery

我有一个看起来像这样的jQuery方法:

$(document).on("keyup", ".txtTag", function (event) {
    var bomItemID = $(this).data('bomitemid');
    var tag = $(this).val();
    $.post("/BillOfMaterial/SetTag?BomItemID=" + bomItemID + "&Tag=" + tag, function (result) {
            // don't do anything
    });
});
Run Code Online (Sandbox Code Playgroud)

在浏览器的控制台中,我收到以下错误消息:

无法加载资源:服务器响应状态为404(未找到) http:// localhost:61560/BillOfMaterial/SetTag?BomItemID = 3671&Tag = xz

但是,当我点击该链接时,它的工作正常.我甚至可以在服务器上的方法SetTag()中找到一个断点.

这是服务器端方法:

[HttpGet]
public ActionResult SetTag(int BomItemID, string Tag)
{
    ... do stuff
    return Json("SUCCESS", JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)

Mih*_*nut 7

您必须使用[HttpPost]请求方法,因为您提出了post请求.

[HttpPost]
public ActionResult SetTag(int BomItemID, string Tag)
{
    ... do stuff
    return Json("SUCCESS");
}
Run Code Online (Sandbox Code Playgroud)

另一个解决方案是使用$.getajax调用以保持server-side方法声明.