Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Routing 如何在asp.net core中为一个解决方案中的两个独立项目设置路由?_Routing_Visual Studio 2017_Asp.net Core Mvc - Fatal编程技术网

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

Routing 如何在asp.net core中为一个解决方案中的两个独立项目设置路由?,routing,visual-studio-2017,asp.net-core-mvc,Routing,Visual Studio 2017,Asp.net Core Mvc,我创建了两个“asp.net核心mvc”项目,它们分别运行良好。当我启动它们时,每一个在它们的“startup.cs”文件中都有自己的路由,它们工作得很好 我的问题是: 如何从第一个项目设置第二个项目路线? 在第一个项目中我应该在哪里更改?我应该添加/写入什么 例如: routes.MapRoute( name: "Default_1", url: "Project1/{controller}/{action}/{id}", defaults: new { control

我创建了两个“asp.net核心mvc”项目,它们分别运行良好。当我启动它们时,每一个在它们的“startup.cs”文件中都有自己的路由,它们工作得很好

我的问题是:

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

例如:

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

此图像可能有助于:

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


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

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

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");
});

为了澄清您是否试图从一个应用程序路由到另一个应用程序?@racamp101这正是我想要做的。我的解决方案中有一个旧项目,它工作了很长一段时间。现在我想添加另一个项目,作为单独的项目代码和不同的配置和数据库来执行本机表单。如何从旧项目为这两个应用程序设置路由它们?如果你想在一个地方控制路由,也许它们不应该是单独的应用程序。你希望通过分离它们来解决什么问题?它们是两个独立的应用程序。路由与第二个应用程序来自完全独立的站点的路由相同。现在,如果您的问题扩展到“我可以共享登录名”和“排序”,我们需要回答更多问题。(是同一个域只是子域吗?)thx@sinan这两个项目如何运作?我应该使用哪个startup.cs作为第一个项目还是第二个项目?@tahaGhSa我编辑了答案。你可以再查一下。您需要使用projectRoute参数为两个项目添加此方法。如果这是您的问题的解决方案,请标记答案。我是否应该将app.UseMvc。。。在每个项目的startup.cs中?MapCommonRoutes方法的用途是什么?我可以将其代码放在每个app.UseMvc中…是的,您需要添加每个项目的startup.cs。MapCommonRoutes包括公共路由配置。这对你来说还不够好吗?
app.UseMvc(routes =>
{
    routes.MapCommonRoutes("Project2");
});