我正在使用.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看起来很好,所以我不想在那里看到额外的参数。知道如何禁用它吗?
答案 0 :(得分:17)
今天早上我使用Web Forms的一条路线遇到了同样的问题,我通过为GetRouteUrl方法提供第二个参数,传入null(因为这个特定路线不需要任何路径)来解决这个问题路线参数)。
例如:
GetRouteUrl("name-of-my-route", null)
我的网址现在很干净,没有附加?length = 15。
希望这也有助于你的情况。