當我有這個代碼點點:進入內部ActionFilter編譯異常訪問請求對象
using System;
using System.Web.Mvc;
public class SecureFilter : RequireHttpsAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (null == filterContext)
{
throw new ArgumentNullException("filterContext");
}
if (null != filterContext.HttpContext && filterContext.HttpContext.Request.IsLocal)
{
return;
}
base.OnAuthorization(filterContext);
}
}
當我試圖確定請求是本地的還是不就是我得到的編譯時異常。它給我這個錯誤:
'System.Web.HttpContextBase' does not contain a definition for 'Request' and no extension method 'Request' accepting a first argument of type 'System.Web.HttpContextBase' could be found (are you missing a using directive or an assembly reference?)
從我的理解Request對象實際上所屬的控制器,但我不太清楚如何,我應該創建這個動作過濾器,如果我不能獲得訪問物體。
任何指導在這裏將不勝感激!
喬希,這一定是一個配置問題 - 你的代碼片段對我來說工作正常。如果你開始一個全新的MVC項目,你是否也遇到了同樣的問題? – 2010-08-20 14:02:29
@尼克裏格斯,好吧很奇怪。將操作篩選器添加到主項目工作中。創建了一個新的mvc解決方案,並將過濾器添加到不同的項目,並且它也可以工作。所以,我的項目有些東西是棘手的,但我不知道是什麼。 – joshlrogers 2010-08-20 14:11:48
只是一個想法,它可能是一些擴展方法,需要一個使用語句,你可能已經刪除? – 2011-06-11 06:51:53