【问题标题】: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返回给调用者。
经过测试,它可以工作。呜呼!
希望这可以帮助其他人。