我需要创建一个用户可以打开特定页面的路径,例如
http://www.mywebsite.com/profilename
当输入时,应显示将显示具有正确信息的配置文件的页面。基本上就像facebook。
我需要创建的路线是什么。我做了这个但是然后会有一个重定向循环,例如有人输入http://www.mywebsite.com/users,例如会显示一个用户列表
routes.MapRoute(
name: "HomeIndexWithParam",
url: "{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });
答案 0 :(得分:0)
您需要创建多条路线才能实现这一目标。使用路线时,请记住该顺序很重要,因此请先放置最具体的路线。
首先,您将为预定的控制器创建路线。这些是始终相同的路线。在这种情况下,“用户”路线:
routes.MapRoute(
name: "Users",
url: "users",
defaults: new { controller = "Users", action = "Index" });
然后,您将按照负责用户个人资料的路线进行操作:
routes.MapRoute(
name: "UserProfile",
url: "{username}",
defaults: new { controller = "User", action = "Profile" });
我建议如果“用户名”遵循预定模式(用户名在4到16个字符之间,只允许数字和文本等),则添加约束以便仅在满足约束时执行< / p>
在用户控制器的“配置文件”操作方法中,您将获取用户名,如果找到用户名,则返回用户配置文件页面的视图。否则将用户重定向到主页。
最后,您将拥有默认路线:
routes.MapRoute(
name: "Home",
url: "",
defaults: new { controller = "Home", action = "Index" });
希望这是有道理的。