gpt4 book ai didi

c# - 网址路由规则冲突

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:48 26 4
gpt4 key购买 nike

我在我的 asp.net 应用程序中实现 URL 路由,因为我的一些规则是冲突的。以下是我的一些冲突规则:

RouteTable.Routes.Add("QuestionSubject",
new Route("questions/{subjectname}/{pageno}",
new RouteValueDictionary { { "pageno", null } },
new RouteValueDictionary { { "pageno", @"^[0-9]*$" } },
new EventRouteHandler("~/questionsitemap/subject.aspx")));

RouteTable.Routes.Add("QuestionSubjectTopic",
new Route("questions/{subjectname}/{topicname}/{pageno}",
new RouteValueDictionary { { "pageno", null } },
new RouteValueDictionary { { "pageno", @"^[0-9]*$" } },
new EventRouteHandler("~/questionsitemap/topic.aspx")));

RouteTable.Routes.Add("QuestionGrade",
new Route("questions/{gradename}/",
new EventRouteHandler("~/questionsitemap/grade.aspx")));

RouteTable.Routes.Add("QuestionSubjectGrade",
new Route("questions/{gradename}/{subjectname}/",
new EventRouteHandler("~/questionsitemap/grade.aspx")));

RouteTable.Routes.Add("QuestionSubjectTopicGrade",
new Route("questions/{gradename}/{subjectname}/{topicname}/",
new EventRouteHandler("~/questionsitemap/grade.aspx")));

在此,当我请求打开 QuestionGrade 规则时,它调用了 QuestionSubject,因为两者的规则相似,其他规则也发生了同样的情况。

请任何人帮助我找出解决方案。

最佳答案

您需要使它们更具体,因为路由引擎无法区分 {subjectname}{gradename}。你可以使用类似下面的东西,将 /subject//grade/ 添加到你的路线吗?

RouteTable.Routes.Add("QuestionSubject",
new Route("questions/subject/{subjectname}/{pageno}",
new RouteValueDictionary { { "pageno", null } },
new RouteValueDictionary { { "pageno", @"^[0-9]*$" } },
new EventRouteHandler("~/questionsitemap/subject.aspx")));

RouteTable.Routes.Add("QuestionGrade",
new Route("questions/grade/{gradename}/",
new EventRouteHandler("~/questionsitemap/grade.aspx")));

关于c# - 网址路由规则冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7287559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com