如何在一个解决方案中的两个独立项目的asp.net核心中设置路由?

时间:2019-06-23 06:21:10

标签: routing visual-studio-2017 asp.net-core-mvc

我创建了两个“ asp.net core mvc”项目,它们分别可以正常运行。当我启动它们时,每个人在其“ startup.cs”文件中都有自己的路由。

我的问题是:

如何从第一个项目设置第二个项目路线?  在第一个项目中我应该在哪里更改?我应该添加/写入什么?

示例:

routes.MapRoute(
    name: "Default_1",
    url: "Project1/{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = 
UrlParameter.Optional }
);

然后:

 routes.MapRoute(
     name: "Default_2",
     url: "Project2/{controller}/{action}/{id}",
     defaults: new { controller = "Home", action = "Index", id = 
 UrlParameter.Optional }
 );

此图片可能有帮助:

image

我的问题与此类似,但没有人完全回答: this link

vs2017 .net核心中的RouteConfig.cs文件在哪里?

1 个答案:

答案 0 :(得分:2)

在公共类库中创建扩展方法。

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Routing;

public static IRouteBuilder MapCommonRoutes(this IRouteBuilder routes, string projectRoute)
{
     routes.MapRoute(
          name: "default",
          template: "/" + projectRoute + "/{controller=Home}/{action=Index}/{id?}");

     // you can add more MapRoute...

     return routes;
 }

并在startup.cs中使用此扩展方法

对于项目1

app.UseMvc(routes =>
{
    routes.MapCommonRoutes("Project1");
});

对于项目2

app.UseMvc(routes =>
{
    routes.MapCommonRoutes("Project2");
});