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

Joh*_*oge 9 asp.net routing .net-4.0

我正在使用.net 4中使用路由的webforms应用程序.我在global.asax中定义了一条非常基本的路由,如下所示:

        RouteTable.Routes.MapPageRoute("myRouteName", "MyRoutePath", "~/RouteHandlers/MyHandler.aspx");
Run Code Online (Sandbox Code Playgroud)

在我的一个页面的代码隐藏中,我用它GetRouteUrl来生成这个命名路由的URL,如下所示:

        Response.RedirectPermanent(GetRouteUrl("myRouteName"));
Run Code Online (Sandbox Code Playgroud)

这不会产生预期的结果http://sitename/MyRoutePath.相反,它产生http://sitename/MyRoutePath?length=15

长度参数似乎没有受到伤害,但我花了很多时间使URL看起来很好,所以我不想在那里看到额外的参数.知道如何禁用它吗?

mar*_*nes 17

我今天早上使用Web Forms只遇到了一个我的路由,我遇到了同样的问题,我通过为GetRouteUrl方法提供第二个参数,传入null(因为这个特定的路由不需要任何路由参数)来解决它.

例如:

GetRouteUrl("name-of-my-route", null)
Run Code Online (Sandbox Code Playgroud)

我的网址现在很干净,没有附加?length = 15.

希望这也可以帮助你的情况.

  • 他应该将此标记为正确的答案,因为它对我有用.非常感谢 - 这让我发疯! (4认同)