【发布时间】:2018-05-30 12:56:08
【问题描述】:
我正在实现后端控制器,其中两个 http post 请求使用两个独立的路由(routea 和 routeb),使用两个不同的操作:
例如:
http://some_domain/api/work/routea
http://some_domain/api/work/routeb
这是控制器的配置方式:
var config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "ControllerAndAction",
routeTemplate: "api/work/{controller}");
这将是控制器的实现:
[RoutePrefix("api/work")]
public class MyController : ApiController
{
[HttpPost]
[Route("routea")]
public HttpResponseMessage RouteA(HttpRequestMessage request)
{...}
[HttpPost]
[Route("routeb")]
public HttpResponseMessage RouteB()
{...}
}
我似乎无法开始执行这些功能。另一方面,如果其中两个调用保存在单独的控制器中(例如 AController.cs 和 BController.cs) - 一切正常。我需要在同一个控制器类中拥有两条路由。这里出了什么问题?
【问题讨论】:
-
我看不到您在哪里注册属性路由。
-
如果 RouteB 被注释了,那么 RouteA 工作正常,它们曾经在单独的控制器类中并且工作正常。
-
我认为这可能是由于方法签名。如果您使用其中一种路由方法来接收参数,它应该可以工作(例如......类对象/字符串/int或其他)......
-
再一次,你在哪里打电话
MapHttpAttributeRoutes? -
请在问题中包含您的完整路线注册。
标签: c# .net asp.net-web-api2