You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC Core 3.1 [HttpPost]接口跳转返回HTTP ERROR 405问题求助

问题原因

HTTP 405错误代表请求方法不被允许,你的问题根因是前后端请求方法不匹配:

  • 前端生成的<form>没有指定method属性,浏览器默认会用GET方法提交请求
  • 后端UserManagement接口加了[HttpPost]注解,仅接收POST类型的请求,二者不匹配所以触发405错误
解决方案(二选一即可)

方案1:修改前端表单使用POST提交

给动态生成的form标签添加method="post"属性即可,修改后的代码如下:

var link = '@Url.Action("UserManagement", "Home", new { GB = @ViewBag.GB, id = "code" })';

link = link.replace("code", listSuppliers[i].Item2);

suppliersTable.row.add([
  "<form action='" + link + "' method='post'><button type='submit' class='btn btn-primary'>" + listSuppliers[i].Item3 + " account(s)</button></form>"
]).draw(false);

方案2:修改后端接口允许GET请求

你当前场景只是查询供应商下的用户数据,属于读操作,用GET请求更符合HTTP语义,直接去掉控制器方法上的[HttpPost]注解即可:

public ActionResult UserManagement(string GB, string id)
{
    ...
    return View();
}

如果想要更规范的接口限定,也可以显式添加[HttpGet]注解。

内容的提问来源于stack exchange,提问作者Hashka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:09:01