我正在使用 .net 4 中的路由的 Webforms 应用程序。我在 global.asax 中定义了一个非常基本的路由,如下所示:
RouteTable.Routes.MapPageRoute("myRouteName", "MyRoutePath", "~/RouteHandlers/MyHandler.aspx");
在我的一个页面的代码隐藏中,我使用 GetRouteUrl
生成此命名路由的 URL,如下所示:
Response.RedirectPermanent(GetRouteUrl("myRouteName"));
这不会产生 http://sitename/MyRoutePath
的预期结果。相反,它会生成 http://sitename/MyRoutePath?length=15
长度参数似乎没有什么坏处,但我花了很多时间让 URL 看起来不错,所以我不想在那里看到额外的参数。知道如何禁用它吗?
最佳答案
今天早上,我仅使用 Web 表单的其中一个路由遇到了同样的问题,我通过向 GetRouteUrl 方法提供第二个参数并传入 null 来解决这个问题(因为该特定路由不需要任何参数)路由参数)。
例如:
GetRouteUrl("name-of-my-route", null)
我的网址现已干净,不再附加 ?length=15。
希望这对您的情况也有帮助。
关于asp.net - WebForms 中的 Page.GetRouteURL 输出 "length"查询字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5479016/