C# 来自外部程序集的APIController的属性路由
我有一个大型ASP.NET MVC 5应用程序,现在我想为它实现Web API。但是我想把apicontroller放在一个独立的项目中。 我在组织Web API的路由时遇到问题: 我希望我的主要申请路线C# 来自外部程序集的APIController的属性路由,c#,.net,asp.net-mvc,asp.net-web-api,C#,.net,Asp.net Mvc,Asp.net Web Api,我有一个大型ASP.NET MVC 5应用程序,现在我想为它实现Web API。但是我想把apicontroller放在一个独立的项目中。 我在组织Web API的路由时遇到问题: 我希望我的主要申请路线 host/* API映射到 host/api/* 对于API,我想使用属性路由,但无法使用正确的方法设置WebApiConfig 如何组织此过程,保持在WebApiConfig类中使用“属性路由”的能力: public static class WebApiConfig { pu
host/*
API映射到
host/api/*
对于API,我想使用属性路由,但无法使用正确的方法设置WebApiConfig
如何组织此过程,保持在WebApiConfig类中使用“属性路由”的能力:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
}
}
在控制器中:
[RoutePrefix("api")]
public class MyController : ApiController
{
[Route("myaction")]
public IHttpActionResult MyAction()
{
//code
}
[Route("otheraction/{id}")]
public IHttpActionResult OtherAction(int id)
{
//code
}
}
现在,此控制器的路由和这些操作将映射如下:
{host}/api/myaction{host}/api/otheraction/{id} 希望能有所帮助我找到了解决方案: 对于APIController,无需重新实现工厂 在project Web(主)中,我们需要:
WebApiConfig.Register(GlobalConfiguration.Configuration);
到
config.MapHttpAttributeRoutes();
启用属性路由现在,Web API引擎可以找到范围内的所有APIController。在项目上实现Web API的原因是什么?它是为现有和新的UI功能服务的吗?在这种情况下,我会问,真的有必要在一个已经很大的MVC应用程序中引入另一层吗?或者是为了提供一组服务,以便外部/第三方集成到您的域中?是的,我们计划在客户端重新实现UI,并为第三方服务提供API访问。BigApp的旧部分将一点一点地消失
config.MapHttpAttributeRoutes();