【发布时间】:2015-02-12 07:26:59
【问题描述】:
请注意,我已经阅读了作为 WebApi 2.2 一部分的新路由功能,以允许继承路由。但是,这似乎并不能解决我的特定问题。它似乎解决了继承动作级别路由属性的问题,但不是在类级别定义的路由前缀。 http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-22#ARI
我想做这样的事情:
[RoutePrefix("account")]
public abstract class AccountControllerBase : ControllerBase { }
[RoutePrefix("facebook")]
public class FacebookController : AccountControllerBase
{
[Route("foo")]
public async Task<string> GetAsync() { ... }
}
[RoutePrefix("google")]
public class GoogleController : AccountControllerBase
{
[Route("bar")]
public async Task<string> GetAsync() { ... }
}
我想继承 account 路由前缀,所以在定义 Facebook 和 Google 控制器时,我会得到路由:
~/account/facebook/foo
~/account/google/bar
目前,在没有来自基类的account 部分的情况下定义路由。
【问题讨论】:
-
不是重复的。这个问题是询问实现基本控制器的控制器上的 RoutePrefix 。我问的是把 RoutePrefix 放在基本控制器上。请再读一遍。谢谢。
标签: c# asp.net inheritance asp.net-web-api