Asp.net mvc 主页上的主要路线

Asp.net mvc 主页上的主要路线,asp.net-mvc,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc Routing,我需要创建一个用户可以打开特定页面的路由,例如 当输入此信息时,应显示显示具有正确信息的配置文件的页面。基本上就像facebook 我需要创建的路线是什么。我这样做了,但是当某人输入时,会有一个重定向循环,它会显示一个用户列表 routes.MapRoute( name: "HomeIndexWithParam", url: "{id}", defaults: new { controller = "Home", action =

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

当输入此信息时,应显示显示具有正确信息的配置文件的页面。基本上就像facebook

我需要创建的路线是什么。我这样做了,但是当某人输入时,会有一个重定向循环,它会显示一个用户列表

        routes.MapRoute(
        name: "HomeIndexWithParam",
        url: "{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });

您需要创建多条管线才能使其正常工作。在处理路由时,请记住顺序很重要,因此请首先放置最具体的路由

首先,您将为预定控制器创建路由。这些路线一直都是相同的。在这种情况下,“用户”路由:

然后,您将遵循负责用户配置文件的路线:

routes.MapRoute(
        name: "UserProfile",
        url: "{username}",
        defaults: new { controller = "User", action = "Profile" });
我建议,如果“用户名”遵循预先确定的模式(用户名在4到16个字符之间,只允许数字和文本等),那么您应该添加一个约束,使其仅在满足约束时执行

在用户控制器中的Profile action方法中,您将获取用户名,如果找到用户名,则返回用户的Profile页面的视图。否则,将用户重定向到主页

最后,您将拥有默认路由:

routes.MapRoute(
        name: "Home",
        url: "",
        defaults: new { controller = "Home", action = "Index" });

希望这有意义。

我设法做到了。然而,现在我必须为我的所有控制器创建一个路由,但它似乎可以工作。谢谢
routes.MapRoute(
        name: "Home",
        url: "",
        defaults: new { controller = "Home", action = "Index" });