【问题标题】:Retrieving Values from URL Rerouting on the target page?从目标页面上的 URL 重新路由中检索值?
【发布时间】:2009-03-17 00:35:32
【问题描述】:

好的... URL Routing 工作正常,但无法弄清楚如何实际读取目标页面中的值。

此处的一个示例显示了使用 RequestContext 中的 RouteValue 对象。现在所有这些都在 System.Web.Routing 命名空间中,但每个人似乎都只将这些连接到 MVC。 RequestContext 是从哪里来的?

如何读取这些参数???

查询字符串也是空白的。

TIA! 凯文

【问题讨论】:

    标签: asp.net query-string url-routing


    【解决方案1】:

    我自己解决了这个问题...耶! :)

    开始胡闹,看到 IHttpHandler 接口为 GetHttpHandler 方法提供了 RequestContext。

    所以,我修改了我的基页面类(我总是在 System.Web.UI.Page 和我自己的页面之间放置一个层,为此目的将其称为 BasePage 或类似名称)。所以我在 PVBasePage 上添加了一个公共属性来接收一个 RequestContext 对象。

    public RequestContext RequestContext { get; set; }
    

    那么,我的Routing类代码如下:

    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返回给调用者。

    经过测试,它可以工作。呜呼!

    希望这可以帮助其他人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      • 2022-01-11
      • 2013-08-09
      • 1970-01-01
      相关资源
      最近更新 更多