HTTP 错误 405 | ASP.NET 核心 3.1 MVC |斜线问题
HTTP ERROR 405 | ASP.NET Core 3.1 MVC | slash problem
我需要一些帮助。
我正在使用 ASP.NET Core 3.1 MVC,一切正常,但不是特定操作。
我有几个页面:开始 -> 索引 -> 添加用户。
感谢 <button>
s,我在页面之间导航。
Index.cshtml :
<form asp-controller="Home" asp-action="AddUser" asp-route-GB="@ViewBag.GB">
<button type="submit" class="btn btn-success">Add</button>
</form>
HomeController.cs :
[HttpGet]
public ActionResult Start(string GB) {
if (string.IsNullOrEmpty(GB)) {
return RedirectPermanent("Error");
}
else {
return View();
}
}
[HttpGet]
public ActionResult Index(string GB) {
if (string.IsNullOrEmpty(GB)) {
return RedirectPermanent("Error");
}
else {
return View();
}
}
[HttpGet]
public ActionResult AddUser(string GB) {
if (string.IsNullOrEmpty(GB)) {
return RedirectPermanent("Error");
}
else {
return View();
}
}
public ActionResult Error() {
return View();
}
URL 结果:
https://localhost:XXXXX/Home/Start?GB=1
-> 进展顺利。
https://localhost:XXXXX/Home/Index?GB=1
-> 进展顺利。
https://localhost:XXXXX/Home/AddUser?GB=1
-> HTTP 错误 405
但是!如果我在最后一个中添加斜杠:
https://localhost:XXXXX/Home/AddUser/?GB=1
-> 进展顺利。
这是怎么回事?我不想在我的浏览器上添加斜线来让它工作...
首先要添加或创建 api,它必须是 POST 类型而不是 GET。
尝试使用 [HttpPost]
属性。它可能会解决您的问题。
好的,基本上我明白了
<a>
支持[HttpGet]
<button>
+ <form>
支持 [HttpPost]
如果您想使用 [HttpGet]
那么:
<a class="btn btn-success" asp-controller="Home" asp-action="AddUser" asp-route-GB="@ViewBag.GB">
Next Step
</a>
如果您想使用 [HttpPost]
那么:
<form asp-controller="Home" asp-action="AddUser" asp-route-GB="@ViewBag.GB">
<button type="submit" class="btn btn-success">Next Step</button>
</form>
我需要一些帮助。
我正在使用 ASP.NET Core 3.1 MVC,一切正常,但不是特定操作。
我有几个页面:开始 -> 索引 -> 添加用户。
感谢 <button>
s,我在页面之间导航。
Index.cshtml :
<form asp-controller="Home" asp-action="AddUser" asp-route-GB="@ViewBag.GB">
<button type="submit" class="btn btn-success">Add</button>
</form>
HomeController.cs :
[HttpGet]
public ActionResult Start(string GB) {
if (string.IsNullOrEmpty(GB)) {
return RedirectPermanent("Error");
}
else {
return View();
}
}
[HttpGet]
public ActionResult Index(string GB) {
if (string.IsNullOrEmpty(GB)) {
return RedirectPermanent("Error");
}
else {
return View();
}
}
[HttpGet]
public ActionResult AddUser(string GB) {
if (string.IsNullOrEmpty(GB)) {
return RedirectPermanent("Error");
}
else {
return View();
}
}
public ActionResult Error() {
return View();
}
URL 结果:
https://localhost:XXXXX/Home/Start?GB=1
-> 进展顺利。
https://localhost:XXXXX/Home/Index?GB=1
-> 进展顺利。
https://localhost:XXXXX/Home/AddUser?GB=1
-> HTTP 错误 405
但是!如果我在最后一个中添加斜杠:
https://localhost:XXXXX/Home/AddUser/?GB=1
-> 进展顺利。
这是怎么回事?我不想在我的浏览器上添加斜线来让它工作...
首先要添加或创建 api,它必须是 POST 类型而不是 GET。
尝试使用 [HttpPost]
属性。它可能会解决您的问题。
好的,基本上我明白了
<a>
支持[HttpGet]
<button>
+<form>
支持[HttpPost]
如果您想使用 [HttpGet]
那么:
<a class="btn btn-success" asp-controller="Home" asp-action="AddUser" asp-route-GB="@ViewBag.GB">
Next Step
</a>
如果您想使用 [HttpPost]
那么:
<form asp-controller="Home" asp-action="AddUser" asp-route-GB="@ViewBag.GB">
<button type="submit" class="btn btn-success">Next Step</button>
</form>