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

时间:2011-03-29 21:14:56

标签: asp.net .net-4.0 routing

我正在使用.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看起来很好,所以我不想在那里看到额外的参数。知道如何禁用它吗?

1 个答案:

答案 0 :(得分:17)

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

例如:

GetRouteUrl("name-of-my-route", null)

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

希望这也有助于你的情况。