Asp.net mvc 主页上的主要路线
我需要创建一个用户可以打开特定页面的路由,例如 当输入此信息时,应显示显示具有正确信息的配置文件的页面。基本上就像facebook 我需要创建的路线是什么。我这样做了,但是当某人输入时,会有一个重定向循环,它会显示一个用户列表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 =
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" });