Лучший способ генерировать URL через Page.GetRouteUrl в классе помощника? - PullRequest
3 голосов
/ 05 ноября 2010

Я только что добавил маршрутизацию в новом приложении веб-форм asp.net 4, настроил таблицу маршрутов в порядке, и запросы страниц работают нормально.

Теперь я хочу использовать метод Page.GetRouteUrl всякий раз, когда мне нужно сгенерировать один из моих SEO-дружественных URL-адресов. Я начал реализовывать это на разных страницах, потом подумал, что это может немного сократить код, если бы у меня был метод в одном из моих собственных вспомогательных классов, который создает этот URL-адрес (используя метод Page.GetRouteUrl), поскольку у меня может быть несколько параметров, которые необходимо указывать для метода Page.GetRouteUrl каждый раз.

Однако, в моем классе помощника, он не знает, что такое «Пейдж». Я думал, что мог бы передать «Page» со страницы, которая хочет, чтобы генерировался перенаправленный URL, но в некоторых случаях я хочу создать один из этих URL в другом классе, который не знает, что такое «Страница», и в этот сценарий не сможет передать его в качестве параметра (и, следовательно, не сможет использовать Page.GetRouteUrl в моем классе помощника).

Каков нормальный подход при желании использовать Page.GetRouteUrl в классах, у которых нет экземпляра объекта Page?

1 Ответ

3 голосов
/ 05 ноября 2010

Вы можете передать Page в качестве параметра конструктора, или это фактически ссылка на страницу:

var page = HttpContext.Current.Handler as Page;

Вы можете привести ее к типу страницы.В зависимости от типа запросов, которые вы делаете, это не всегда может быть страница (скажем, от вызова веб-службы и т. Д.).

HTH.

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