首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ASP.Net核心3.0中使用EndPoint路由配置多个HttpVerbs

在ASP.Net核心3.0中使用EndPoint路由配置多个HttpVerbs
EN

Stack Overflow用户
提问于 2019-12-02 05:58:57
回答 2查看 295关注 0票数 0

当我使用Visual Studio中的默认模板在新设置的WebApi项目的帐户控制器中有多个动作方法具有相同的谓词,即POST时,我会得到一个异常。以下是关于VS的信息:

代码语言:javascript
复制
Microsoft Visual Studio Enterprise 2019
Version 16.3.10
VisualStudio.16.Release/16.3.10+29519.87

下面是我得到的异常:

代码语言:javascript
复制
InvalidOperationException: The method 'post' on path '/api/Account' is registered multiple times.

下面是启动文件中的默认路由设置:

代码语言:javascript
复制
 app.UseEndpoints(endpoints => { endpoints.MapControllers(); });

我也尝试了以下方法,但没有任何帮助。

代码语言:javascript
复制
  endpoints.MapControllerRoute(
            name: "api",
            pattern: "{controller}/{id?}");

代码语言:javascript
复制
endpoints.MapControllerRoute(
            name: "api",
            pattern: "{controller}/{action}/{id?}");

我也在官方文档中读到了端点路由,但我不能弄清楚我遗漏了什么。感谢您的帮助。

EN

回答 2

Stack Overflow用户

发布于 2019-12-02 07:11:15

您需要传入模板名称,即[HttpPost("my-other-route")]

票数 2
EN

Stack Overflow用户

发布于 2019-12-02 11:13:17

尝试更改ControllerRoute属性,如下所示

代码语言:javascript
复制
[Route("api/[controller]/[action]")]
[ApiController]
public class StudentsController : ControllerBase
{ ... }

您可以使用请求路由调用PostStudent操作,如https://localhost:44346/api/students/postStudent,并使用请求路由调用PostStudentList操作,如https://localhost:44346/api/students/postStudentList

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59130379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档