我正在构建一个小型MVC应用程序。用户登录后,我希望他/她的路线显示:
www.appname.com/username/
当然,在下面为每个用户调用相同的动作,例如/home/index
。如何编写MapRoute
以实现该目标以及我应该使用哪些其他代码(属性)?
答案 0 :(得分:1)
将此路径添加到global.asax.cs
文件
routes.MapRoute(
"RouteName", // Route name
"FixedUrlSegment/{UserName}/{Controller}/{action}/{id}/", // URL with parameters
new { controller = "ControllerName",
action = "ActionName",
id=UrlParameter.Optional
},
);
我认为您应该使用固定段作为路线的起点,以区别于默认路线或其他路线
当然,在登录操作方法中,您必须重定向到该新路由
return RedirectToRoutePermanent("RouteName", new { username = "UserName",
action = "Index",
controller = "Home",
id="userId"
}
);
// remember id is not required for that route as mentioned in global file
此示例会将您的网页重定向到网址
www.appname.com/FixedUrlSegment/loggedusername/home/index/loggeduserid