我正在建设一个高流量的asp.net webforms网站。我已经将一个类中的所有urls组件化了。在查找请求的当前路由时,什么是最有效的?调用HttpContext.Current.Request.RequestContext.RouteData.Route或将Page.RouteData.Route发送到方法中,该方法检查我们是否在某个路由url处。示例:
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;
}发布于 2012-01-24 18:44:10
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方法,由于null检查,则不太可能获得异常。然而,你的上下文为空的频率是另一个问题,如果你认为它有潜力,你可能想为自己设计一个案例。
此外,考虑将其包装在HttpContextBase中并使用它,而不是直接访问HttpContext.Current。
可以在这里找到一个示例,http://www.agileatwork.com/bolt-on-multi-tenancy-in-asp-net-mvc-with-unity-and-nhibernate/使用下面的命令查看行
new HttpContextWrapper(HttpContext.Current)https://stackoverflow.com/questions/8985025
复制相似问题