将我的API放在Asp.net应用程序的其他区域

时间:2019-04-15 23:29:25

标签: c# asp.net asp.net-mvc web.api

我正在使用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?

0 个答案:

没有答案