Asp.net WebForms输出中的Page.GetRouteURL“;“长度”;查询字符串参数

Asp.net WebForms输出中的Page.GetRouteURL“;“长度”;查询字符串参数,asp.net,.net-4.0,routing,Asp.net,.net 4.0,Routing,我在使用.NET4中的路由的webforms应用程序中工作。我在global.asax中定义了一条非常基本的路线,如下所示: RouteTable.Routes.MapPageRoute("myRouteName", "MyRoutePath", "~/RouteHandlers/MyHandler.aspx"); Response.RedirectPermanent(GetRouteUrl("myRouteName")); 在我的一个页面的codebehin

我在使用.NET4中的路由的webforms应用程序中工作。我在global.asax中定义了一条非常基本的路线,如下所示:

        RouteTable.Routes.MapPageRoute("myRouteName", "MyRoutePath", "~/RouteHandlers/MyHandler.aspx");
        Response.RedirectPermanent(GetRouteUrl("myRouteName"));
在我的一个页面的codebehind中,我使用
GetRouteUrl
为这个命名路由生成URL,如下所示:

        RouteTable.Routes.MapPageRoute("myRouteName", "MyRoutePath", "~/RouteHandlers/MyHandler.aspx");
        Response.RedirectPermanent(GetRouteUrl("myRouteName"));
这不会产生
http://sitename/MyRoutePath
。相反,它会生成
http://sitename/MyRoutePath?length=15


长度参数似乎没有什么坏处,但我花了很多时间让URL看起来很漂亮,所以我不想在那里看到额外的参数。知道如何禁用它吗?

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

例如:

GetRouteUrl("name-of-my-route", null)
我的Url现在是干净的,没有附加?长度=15


希望这也能对你的情况有所帮助。

他应该把这当作正确的答案,因为这对我很有用。非常感谢-这让我发疯了!!