我打算为下面描述的问题编写自定义ASP.NET MVC4路由。
默认 [http:// localhost:1603] 用户登录后,URL应显示登录页面,然后URL应包含URL中的用户名,如 [http:// localhost: 1603 /用户名] 和其他操作方法应该像 [http:// localhost:1603 / username / profile] 一样访问。
请指导我如何解决此问题。
提前致谢。
答案 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
名称。例如,我将其更改为:Account
和Login
。
URL应包含URL中的用户名,如[http:// localhost:1603 / username]
现在你需要一个自定义路线,可能是这样的:
routes.MapRoute(
name: "Custom",
url: "{username}/{action}",
defaults: new { controller = "UserController", action = "Index" }
);
使用此路线(我假设您有(UserController
和Index
行动):
http://localhost:1603/username
将转到UserController的Index操作。
http://localhost:1603/username/profile
将在Profile
内查找UserController
操作。当然,您应该从您的Action中获取RouteData
字典中的用户名。否则,这似乎毫无意义。