我正在使用Web API创建Web应用程序,两者都将放置在同一项目中。
我已经使api起作用了,但是由于它们都将在同一个应用程序中,因此我想将我的所有APi文件(如控制器,模型等)放在单独的区域中。
我添加了一个名为api的新区域,它使用以下代码创建了一个apiAreaRegistration类:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"api_default",
"api/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
但是应用程序已经在WebApiConfig.cs中包含以下代码:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
如果在api区域中创建通用的mvc控制器,我可以通过/ api / MyControlller / MyAction访问它,但是如果我在api区域中创建ApiController,则在尝试访问它时会收到404错误。 / p>
所以,我的问题是,如何将我的api放在这个单独的区域中,并通过常见的api调用来访问它:/ api / MyController / MyAction?