【发布时间】:2017-04-11 12:01:36
【问题描述】:
所以我在我们的 Web API 项目中几乎没有进行重构,我注意到在抽象类中提取一个具有所有需要属性的控制器会很好,所以我所做的是:
-
从我现有的控制器中提取抽象类和方法:
[RoutePrefix("api/auth")] public class AdminController : BaseAdminController
所以BaseAdminController 看起来像这样:
public abstract class BaseAdminController : BaseApiController
{
[HttpGet]
[Route("validatetoken")]
public abstract IHttpActionResult ValidateToken(string token);
}
这是我使用的路由:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/"
);
}
现在我注意到,当使用抽象控制器测试代码时,它会抛出:
找不到与名为“auth”的控制器匹配的类型
虽然相同的实现但没有抽象类和方法也可以正常工作。
我正在使用这个网址进行测试:
http://localhost:60747/api/auth/validatetoken?auth_token=117a2686-dad3-4b1e-a5eb-94aebed45d06
【问题讨论】:
标签: c# .net asp.net-web-api controller asp.net-web-api-routing