Asp.net mvc MVC的自定义URL

Asp.net mvc MVC的自定义URL,asp.net-mvc,routing,Asp.net Mvc,Routing,我一直在尝试写一条路线,允许这样的事情发生 routes.MapRoute( name: "UserName", url: "{username}/{controller}/{action}/{id}", defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional } ); 路线可能是 在我的例子中,用户名是可

我一直在尝试写一条路线,允许这样的事情发生

routes.MapRoute(
          name: "UserName",
          url: "{username}/{controller}/{action}/{id}",
          defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional }
       );
路线可能是

在我的例子中,用户名是可选的,因此URL中可能有用户名,或者如果用户名不可用,则应该将其视为控制器

现在不可能通过路线。我想写一个定制的实现来检查第一部分是否是用户名


需要专家意见如何实现上述目标

我相信,当您添加以下一条路线时,这是可以实现的

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

同一控制器和操作可以有多个路由。除非我在理解您的问题时犯了错误。

我的系统中有多个控制器,为每个控制器添加路由将非常困难。我想要一些通用的东西,这样我就可以签入代码,然后转到rite controller。您需要为这个特定场景指定路由,而不是为每个控制器指定路由。这将是Salman/login、Salman/register、Salman/activation等:这是我试图避免的,因为系统中可能有很多场景