我有以下网址
这是我的路线
对于上面的#1:
routes.MapRoute(
name: "DescriptionNoController",
url: "{d}",
defaults: new {controller = "Home", action = "Index", d = UrlParameter.Optional}
);
对于上面的#2:
routes.MapRoute(
name: "DescriptionDefault",
url: "{controller}/{action}/{d}",
defaults: new {controller = "Home", action = "Index", d = UrlParameter.Optional}
);
我遇到麻烦#3。
我以为我能做到
routes.MapRoute(
name: "DescriptionDefaultNoAction",
url: "{controller}/{d}",
defaults: new { controller = "Home", action = "Index", d = UrlParameter.Optional }
);
但这会产生无限循环。基本上我想要#3示例将“home / description”映射到Home Controller和Index动作。帮助将不胜感激!
答案 0 :(得分:0)
你的问题是场景3将与Route config 2匹配,因为它会认为描述是动作,而你没有{d}部分。
解决此问题的唯一方法是拥有非常具体的路线,并且您需要在方案2之前满足方案3。
你应该添加的最后一条路线就是这个路线,这是你的全部。
routes.MapRoute(
name: "DescriptionDefault",
url: "{controller}/{action}/{d}",
defaults: new {controller = "Home", action = "Index", d = UrlParameter.Optional}
);
您的问题中不清楚的是,您的网址的描述部分是占位符还是字面值。如果是文字,那么在你的路线配置中使用它。