GET方法有效,DELETE方法抛出400

时间:2019-07-30 15:55:29

标签: jquery asp.net-core httprequest

我正在开发一个ASP.NET Core网站并从控制器中调用方法。我想提供一种删除实体的方法,并希望出于语义目的使用[HttpDelete]

如果我在Controller方法中使用[HttpGet]标记并尝试通过JQuery访问它,它将起作用:

CompanyController:

[HttpGet]
[Route(nameof(DeleteSite))]
public ActionResult DeleteSite(int id)
{
    return Json("ok");
}

JQuery请求:

$.ajax({
    url: "@Url.Action("DeleteSite","Company")?id=" + currentSiteIdToDelete,
    type: "GET",

    success: function (e) {
        console.log("yay")
    })

如果我尝试将方法切换为删除,并在控制器和调用中进行更改,它将开始引发400错误请求错误:

CompanyController:

[HttpDelete]
[Route(nameof(DeleteSite))]
public ActionResult DeleteSite(int id)
{
    return Json("ok");
}

JQuery请求:

$.ajax({
    url: "@Url.Action("DeleteSite","Company")?id=" + currentSiteIdToDelete,
    type: "DELETE",

    success: function (e) {
        console.log("yay")
    })

DELETE 方法还需要工作吗?我无法使用路由参数,因为currentSiteIdToDelete是在客户端编译的,我打算使用@Url.Action()来到达Controller。

0 个答案:

没有答案