ASP.NET MVC4自定义路由

时间:2014-02-02 11:14:58

标签: asp.net-mvc-4

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

默认 [http:// localhost:1603] 用户登录后,URL应显示登录页面,然后URL应包含URL中的用户名,如 [http:// localhost: 1603 /用户名] 和其他操作方法应该像 [http:// localhost:1603 / username / profile] 一样访问。

请指导我如何解决此问题。

提前致谢。

2 个答案:

答案 0 :(得分:0)

我是MvcCodeRouting的粉丝(有一个NuGet包)。看看doco的基本路线。它会做你想要实现的目标。

答案 1 :(得分:0)

  

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

为此,您可以更改Default Url Route的默认值。就像这样:

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

您应该更改默认Controller和默认Action名称。例如,我将其更改为:AccountLogin

  

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

现在你需要一个自定义路线,可能是这样的:

routes.MapRoute(
            name: "Custom",
            url: "{username}/{action}",
            defaults: new { controller = "UserController", action = "Index" }
        );

使用此路线(我假设您有(UserControllerIndex行动):

http://localhost:1603/username

将转到UserController的Index操作。

http://localhost:1603/username/profile

将在Profile内查找UserController操作。当然,您应该从您的Action中获取RouteData字典中的用户名。否则,这似乎毫无意义。

相关问题