JQuery AJAX PUT方法在asp.net mvc中返回404错误(未找到)

时间:2014-12-05 13:47:23

标签: jquery ajax asp.net-mvc

这是我的问题,我尝试使用JQuery AJAX更新我的数据在asp.net mvc中,但是当我使用PUT方法时,它会返回错误说404,意味着它找不到我的控制器,但如果我使用GET / POST方法,一切正常,所以问题是什么?谢谢!

var Test= {
    Update: function (TestId, Test, callback) {

        var errorMsg = "Missing a parameter!";
        if (!TestId) { throw errorMsg; return; }
        if (Test== null) { throw errorMsg; return; }
        if (callback == null) { throw errorMsg; return; }

        var pack = { "test" : Test};

        $.ajax({
            type: "PUT",
            url: "/test/" + TestId+ "/update",
            dataType: "json",
            data: JSON.stringify(pack),
            contentType: 'application/json; charset=utf-8',
            processData: false,
            cache: false
        }).done(function (result) {
            callback(result);
        });

    }
};

2 个答案:

答案 0 :(得分:0)

您应该MVC 永远不会硬编码 网址

而是使用@Url.Action

url: '@Url.Action("FunctionName", "ControllerName")',

如果您希望发送参数,请使用

url: '@Url.Action("FunctionName", "ControllerName", new { ID = Model.MyID })',

另外,为了您的理智,请使用fail方法。

$.ajax("http://url")
    .done(function() {
    alert("success");
})
    .fail(function() {
    alert("error");
})

如果这不能解决您的问题,请告诉我们您遇到了什么样的错误。

答案 1 :(得分:0)

你有没有把它设置为.NET端的接受?

[HttpPut]
public JsonResult Update(int id)
{
    return Json("Your Response");
}