当我使用Visual Studio中的默认模板在新设置的WebApi项目的帐户控制器中具有多个具有相同动词的操作方法(即POST)时,出现异常。这是有关VS的信息:
Microsoft Visual Studio Enterprise 2019
Version 16.3.10
VisualStudio.16.Release/16.3.10+29519.87
这是我得到的例外:
InvalidOperationException: The method 'post' on path '/api/Account' is registered multiple times.
这是我在“启动”文件中的默认路由设置:
app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
我也尝试了以下方法,但没有帮助。
endpoints.MapControllerRoute(
name: "api",
pattern: "{controller}/{id?}");
和
endpoints.MapControllerRoute(
name: "api",
pattern: "{controller}/{action}/{id?}");
我也已经在官方文档中阅读了有关终点路由的信息,但是我无法弄清楚我缺少什么。感谢您的帮助。
答案 0 :(得分:2)
您需要传递模板名称,即[HttpPost("my-other-route")]
。
答案 1 :(得分:0)
尝试如图所示更改Route
的{{1}}属性
Controller
您可以使用[Route("api/[controller]/[action]")]
[ApiController]
public class StudentsController : ControllerBase
{ ... }
之类的请求路由来调用PostStudent
操作,而使用https://localhost:44346/api/students/postStudent
之类的请求路由来调用PostStudentList
操作。