![](/img/trans.png)
[英]What pattern is being done in the Global.asax.cs file in ASP.NET MVC 4?
[英]Identify MVC request in Global.asax.cs in Asp .NET MVC 2
在ASP.NET MVC 2的Global.asax.cs中的EndRequest處理程序中,是否可以通過mvc控制器而不是通過獲取某些資源文件(js,css,圖像)的請求來識別當前請求? 更令我感興趣的是,即使曾經使用控制器生成響應但沒有從OutputCache提供響應,也可以這樣做。
我認為您可以運行以下代碼: this.Context.Handler is MvcHandler
Global.asax中Application_EndRequest中的this.Context.Handler is MvcHandler
。
如果您想遍歷路線,可以執行以下操作:
if(this.Context.Handler == null)
{
foreach (var route in RouteTable.Routes)
{
var foundRoute = route.GetRouteData(new HttpContextWrapper(Context));
if(foundRoute==null)
continue;
if(foundRoute.RouteHandler is MvcRouteHandler)
{
// code
break;
}
}
}
如果我沒記錯的話,如果findRoute與上下文不匹配,它將為NULL,但是您應該運行此代碼並對其進行測試。
僅供參考,忽略的路由實現StopRouteHandler。 MvcRoutees實現MvcRouteHandler。 還有其他一些處理程序,例如PageRouteHandler和ResourceRouteHandler。
更新:
順便說一句,如果您打算使用此搜索,我會添加一個哈希或某種緩存方法,因此您不必每次都遍歷路由。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.