Получение значений из перенаправления URL на целевой странице? - PullRequest
0 голосов
/ 17 марта 2009

Ладно ... работает маршрутизация URL, но она не может понять, как на самом деле прочитать значения на целевой странице.

Один пример здесь показывает использование объекта RouteValue из RequestContext. Теперь все они находятся в пространстве имен System.Web.Routing, но, похоже, все подключают их только к MVC. Откуда берется RequestContext?

Как мне прочитать эти параметры ???

Строка запроса также пуста.

ТИА! Kevin

1 Ответ

0 голосов
/ 17 марта 2009

Решил это сам ... Yay me !!! :)

Начал все шутить и увидел, что интерфейс IHttpHandler предоставляет RequestContext методу GetHttpHandler.

Итак, я изменил свой класс базовой страницы (я всегда помещал слой между System.Web.UI.Page и моими собственными страницами, называя его BasePage или аналогичным только для цели). Поэтому я добавил публичное свойство в PVBasePage для получения объекта RequestContext.

public RequestContext RequestContext { get; set; }

Тогда мой код класса маршрутизации выглядит следующим образом:

IHttpHandler IRouteHandler.GetHttpHandler(RequestContext requestContext)
{
    // create the page object as my own page...
    var page = BuildManager.CreateInstanceFromVirtualPath(VirtualPath
        , typeof(PVBasePage)) as PVBasePage;
    // pass in the request context
    page.RequestContext = requestContext;
    // return this page in the form of a IHttpHandler
    return page as IHttpHandler;
}

Таким образом, вместо того, чтобы, как в примере кода, создавать экземпляр непосредственно как IHttpHandler, я создаю его как свою собственную страницу. Установите свойство контекста запроса, а затем верните страницу вызывающей стороне в качестве IHttpHandler.

Проверено и все работает. WOO HOO!

Надеюсь, это поможет кому-то еще в будущем.

...