好...了URL路由工作得很好,但无法弄清楚如何在实际目标页面读取的值。

一个例子这里示出了使用从所述的RequestContext对象RouteValue。现在,所有的这些都在System.Web.Routing命名空间,但是大家似乎这些被连接到只有MVC。在什么地方的RequestContext从何而来?

如何阅读这些参数???

查询字符串是空的为好。

TIA! 凯文

有帮助吗?

解决方案

解决这个对我自己......耶我! :)

开始事碴四周,看到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的,我创建它作为自己的网页。设置请求上下文属性,然后将页面返回给调用者AS一个的IHttpHandler。

测试和它的工作原理。 WOO HOO!

希望这有助于别人的道路。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top