【发布时间】:2020-09-19 11:16:08
【问题描述】:
是否可以有两个具有相同路由名称和相同方法但参数不同的操作? 我试过这个:
[HttpPost]
[Route("gstr4")]
public HttpResponseMessage SubmitGSTR4([FromBody] RequestPayloadWithoutSign requestPayload)
{ }
[HttpPost]
[Route("gstr4")]
public HttpResponseMessage FileGSTR4([FromBody] RequestPayloadWithSign requestPayload)
{ }
我收到了状态码 500 (InternalServerError),这是原始响应:
{"Message":"An error has occurred.","ExceptionMessage":"Multiple actions were found that match the request: \r\nFileGSTR4 on type APIPortal.Controllers.GSTR4Controller\r\nSubmitGSTR4 on type APIPortal.Controllers.GSTR4Controller","ExceptionType":"System.InvalidOperationException","StackTrace":" at System.Web.Http.Controllers.ApiControllerActionSelector.ActionSelectorCacheItem.SelectAction(HttpControllerContext controllerContext)\r\n at System.Web.Http.Controllers.ApiControllerActionSelector.SelectAction(HttpControllerContext controllerContext)\r\n at System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()"}
【问题讨论】:
-
不可能
-
但是 HttpGet 可能吗?
-
不,不可能。您可以拥有相同的
route和不同的httpstate,即。 (get,post)。但这不可能有两个GET和相同的route。 -
@RithikBanerjee 这也是不可能的
-
一个请求可以在两种方法中映射一种方法吗?
标签: c# asp.net-web-api asp.net-web-api-routing asp.net-apicontroller