主页上的主要路线

时间:2013-01-29 18:15:15

标签: asp.net-mvc asp.net-mvc-routing

我需要创建一个用户可以打开特定页面的路径,例如

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 });

1 个答案:

答案 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" });

希望这是有道理的。