asp.net - WebForms 中的 Page.GetRouteURL 输出 "length"查询字符串参数

标签 asp.net .net-4.0 routes

我正在使用 .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/

相关文章:

javascript - 在ionic框架中设置 subview 和路由

javascript - 为什么 JavaScript 不填充此处的文本框?

c# - 如何更快地取消任务

c# - ManualResetEvent(Slim), Semaphore(Slim) 和 ReaderWriterLock(Slim) 的用法和实现的区别

c# - InitializeLifetimeService 覆盖模式

ruby-on-rails - Rails路线-限制资源的可用格式

c# - 在 asp.net 中将字符串转换为日期时间

c# - 从 ASP.NET MVC 2 站点下载文件

c# - 为什么 ASP.NET 找不到我的文本框?

linux - 将特定传出 url 重新路由到另一个 url - linux ubuntu 16.04