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