Извлечение значений из перенаправления URL-адреса на целевой странице?
-
19-08-2019 - |
Вопрос
ОК...Маршрутизация URL работает просто отлично, но я не могу понять, как на самом деле прочитать значения на целевой странице.
Один из приведенных здесь примеров показывает использование объекта RouteValue из RequestContext .Теперь все они находятся в пространстве имен System.Web.Routing, но, похоже, все подключают их только к MVC.Откуда берется RequestContext?
Как мне прочитать эти параметры???
Строка запроса также пуста.
ТИА!Кевин
Решение
Решил эту проблему самостоятельно...Ура мне!!!:)
Начал возиться с вещами и увидел, что интерфейс 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.
Протестировано, и это работает.У-У-У!
Надеюсь, это поможет кому-то еще в будущем.