C# ASP.net MVC将旧的基本URL路由到新的基本URL

C# ASP.net MVC将旧的基本URL路由到新的基本URL,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我也是一个非常新的ASP.net,经过大量的搜索,我找不到我的问题的答案。现在,我们在Global.asax.cs中配置了当前路由 config.Routes.MapHttpRoute( name: "default", routeTemplate: "version/{controller}", defaults: new { category = "all" } ); 这将给出https:localhost:0000/project/version/index 但我

我也是一个非常新的ASP.net,经过大量的搜索,我找不到我的问题的答案。现在,我们在Global.asax.cs中配置了当前路由

config.Routes.MapHttpRoute(
    name: "default",
    routeTemplate: "version/{controller}",
    defaults: new { category = "all" }
);
这将给出https:localhost:0000/project/version/index

但我希望能够将来自https:localhost:0000/api/version/index的所有请求映射到该位置


我想知道这是一个路由问题还是需要在Web.Config中完成的事情,所以这个旧的端点不再使用了?您需要的是301重定向(它转发URL,同时通知调用方位置已更改:

关于这个问题,有更多信息:

编辑:

“localhost:0000/projectname”部分基于其绑定在IIS中的设置方式。如果您在完整IIS中手动设置站点,这是一项显而易见的任务。调试时,您经常使用IIS Express,并且可以自动设置绑定。您可以通过打开applicationhost.config文件来查找和编辑它们,如下所述:


那么这个较旧的端点不再使用了?您需要的是301重定向(它转发URL,同时通知调用方位置已更改:

关于这个问题,有更多信息:

编辑:

“localhost:0000/projectname”部分基于其绑定在IIS中的设置方式。如果您在完整IIS中手动设置站点,这是一项显而易见的任务。调试时,您经常使用IIS Express,并且可以自动设置绑定。您可以通过打开applicationhost.config文件来查找和编辑它们,如下所述:


如果您是MVC新手,我建议使用属性路由,您可以轻松创建任意路由如果您是MVC新手,我建议使用属性路由,您可以轻松创建任意路由如果有人要在同一本地主机中调用完全不同的URL,我希望当前端点路由到。p现在的问题是,无论我做什么,它都会将项目名称放在本地主机ex(localhost:0000/project)之后如果有人要在同一本地主机中调用完全独立的URL,我希望它接受没有项目名称的请求。现在的问题是,无论我做什么,它都会将项目名称放在本地主机ex(localhost:0000/project)之后我希望它接受没有项目名称的请求