我正在开发一个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。