Page.GetRouteURL в WebForms выводит параметр строки длины "length" - PullRequest
9 голосов
/ 30 марта 2011

Я работаю в приложении webforms, которое использует маршрутизацию в .net 4. Я определил очень простой маршрут в 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 Ответ

17 голосов
/ 04 мая 2011

Я столкнулся с этой же самой проблемой только с одним из моих маршрутов, использующих веб-формы сегодня утром, и я обошел его, предоставив 2-й аргумент методу GetRouteUrl, передавая значение null (поскольку этот конкретный маршрут не требовал никакого параметры маршрута).

Например:

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

Мой URL-адрес теперь чистый и к нему не добавляется? Length = 15.

Надеюсь, это может помочь и вашей ситуации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...