首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequestContext.RouteData.Route vs Page.RouteData.Route

RequestContext.RouteData.Route vs Page.RouteData.Route
EN

Stack Overflow用户
提问于 2012-01-24 18:11:55
回答 1查看 2.6K关注 0票数 0

我正在建设一个高流量的asp.net webforms网站。我已经将一个类中的所有urls组件化了。在查找请求的当前路由时,什么是最有效的?调用HttpContext.Current.Request.RequestContext.RouteData.Route或将Page.RouteData.Route发送到方法中,该方法检查我们是否在某个路由url处。示例:

代码语言:javascript
复制
    public static bool IsCurrentRoute(string routeName)
    { 
        var route = HttpContext.Current.Request.RequestContext.RouteData.Route;

        if (route == System.Web.Routing.RouteTable.Routes[routeName])
            return true;

        return false;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-24 18:44:10

Page.Routedata只是围绕着Context.RouteData。

摘自JustDecompile

代码语言:javascript
复制
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public RouteData RouteData
{
    get
    {
        if (base.Context != null && base.Context.Request != null)
        {
            return base.Context.Request.RequestContext.RouteData;
        }
        return null;
    }
}

所以回答你的问题--没有区别。但是,如果您使用Page方法,由于null检查,则不太可能获得异常。然而,你的上下文为空的频率是另一个问题,如果你认为它有潜力,你可能想为自己设计一个案例。

此外,考虑将其包装在HttpContextBase中并使用它,而不是直接访问HttpContext.Current。

可以在这里找到一个示例,http://www.agileatwork.com/bolt-on-multi-tenancy-in-asp-net-mvc-with-unity-and-nhibernate/使用下面的命令查看行

代码语言:javascript
复制
new HttpContextWrapper(HttpContext.Current)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8985025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档