Asp.net RequestContext.RoutedData.Route vs Page.RoutedData.Route
我正在构建一个高流量的asp.net webforms网站。我已将类中的所有URL组件化。在查找请求的当前路由时,什么是最有效的?调用HttpContext.Current.Request.RequestContext.RoutedData.Route或将Page.RoutedData.Route发送到方法中,以检查我们是否处于某个路由url。例如:Asp.net RequestContext.RoutedData.Route vs Page.RoutedData.Route,asp.net,routes,Asp.net,Routes,我正在构建一个高流量的asp.net webforms网站。我已将类中的所有URL组件化。在查找请求的当前路由时,什么是最有效的?调用HttpContext.Current.Request.RequestContext.RoutedData.Route或将Page.RoutedData.Route发送到方法中,以检查我们是否处于某个路由url。例如: public static bool IsCurrentRoute(string routeName) { va
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;
}
Page.Routedata只是环绕Context.Routedata 摘自JustDecompile
[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方法,则不太可能出现异常。虽然你的上下文多长时间会为空是另一个问题,如果你认为它有潜力的话,这可能是你想要为自己设计的一个案例
另外,与其访问HttpContext.Current,还不如直接考虑将其包装在HttpContextBase中并使用它
这里可以找到一个例子,请看
new HttpContextWrapper(HttpContext.Current)
Page.Routedata只是环绕Context.Routedata 摘自JustDecompile
[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方法,则不太可能出现异常。虽然你的上下文多长时间会为空是另一个问题,如果你认为它有潜力的话,这可能是你想要为自己设计的一个案例
另外,与其访问HttpContext.Current,还不如直接考虑将其包装在HttpContextBase中并使用它
这里可以找到一个例子,请看
new HttpContextWrapper(HttpContext.Current)
谢谢事实上,包装httpcontext是一个很好的建议——已经得到了这个建议,但希望在示例中澄清httpcontext.Current。干杯谢谢事实上,包装httpcontext是一个很好的建议——已经得到了这个建议,但希望在示例中澄清httpcontext.Current。干杯