Asp.net mvc 4 ASP.NET MVC4自定义路由

Asp.net mvc 4 ASP.NET MVC4自定义路由,asp.net-mvc-4,Asp.net Mvc 4,我计划为下面描述的问题编写自定义ASP.NET MVC4路由 默认情况下[http://localhost:1603]URL应在用户登录后显示登录页面,然后URL应在URL中包含用户名,如[http://localhost:1603/username]和其他操作方法应该像[http://localhost:1603/username/profile] 请指导我如何处理这个问题 提前感谢。我是MVC协作的粉丝(有一个NuGet软件包)。看一下doco中的基本路线。它将实现你想要实现的目标 默认情况

我计划为下面描述的问题编写自定义ASP.NET MVC4路由

默认情况下[http://localhost:1603]URL应在用户登录后显示登录页面,然后URL应在URL中包含用户名,如[http://localhost:1603/username]和其他操作方法应该像[http://localhost:1603/username/profile]

请指导我如何处理这个问题


提前感谢。

我是MVC协作的粉丝(有一个NuGet软件包)。看一下doco中的基本路线。它将实现你想要实现的目标

默认情况下[http://localhost:1603]URL应该显示登录页面

为此,您可以更改
Default
Url路由的默认值。如下所示:

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
        );
您应该更改默认的
控制器
和默认的
操作
名称。例如,我将它们更改为:
帐户
登录

URL应在URL中包含用户名,如[http://localhost:1603/username]

现在您需要自定义路线,可能类似于:

routes.MapRoute(
            name: "Custom",
            url: "{username}/{action}",
            defaults: new { controller = "UserController", action = "Index" }
        );
使用此路由(我假设您有(
UserController
索引
操作):

将转到UserController的索引操作

http://localhost:1603/username/profile
将在
UserController
中查找
Profile
操作。当然,您应该从操作中的
RouteData
字典中获取用户名。否则,这看起来毫无意义

http://localhost:1603/username/profile