适用于多种应用的mvc 4 web api

Tan*_*ose 5 asp.net-mvc asp.net-mvc-4 asp.net-web-api

我的mvc 4应用程序为3个不同的子应用程序公开了一个API层.我正在为所有三个子应用程序使用单个api控制器.所有这三个应用程序都使用父应用程序DB.

我想知道我是否做错了.此外,随着应用程序的发展,api控制器变得越来越重.有没有什么好方法可以管理父应用程序项目中的子应用程序?

Rif*_*faj 5

您可以使用区域来管理父级应用程序中的子应用程序.请按照以下问题中的步骤来创建项目中的区域

如何在ASP.NET MVC3中配置区域

要处理对区域的Api请求,您需要在区域注册中有两条路径.

  public override void RegisterArea(AreaRegistrationContext context)
    {
        context.Routes.MapHttpRoute(
            name: "Area_Name_Api",
            routeTemplate: "Area_Name/api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        context.MapRoute(
            "Area_Name_default",
            "Area_Name/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional }
        );
    }
Run Code Online (Sandbox Code Playgroud)

第一条路线用于到达该区域的api控制器,第二条路线用于常规的api控制器.

http://blogs.infosupport.com/asp-net-mvc-4-rc-getting-webapi-and-areas-to-play-nicely/

以上链接更多地解释了这一点.

通过这种方式,您可以分离您的子应用程序并组织您的功能,在父项目中建模视图(如果有).