Dot-Net
可以在 ASP.NET MVC 的 ValidationAttribute 中訪問 HttpContext 嗎?
可以在 ASP.NET MVC 3
HttpContext中訪問嗎?ValidationAttribute我需要測試我的路線數據中的某些內容是否匹配,以便在我的驗證器上返回 true。
謝謝
是的,您可以訪問靜態 HttpContext.Current 屬性來獲取目前的 http 上下文。
此屬性可能返回 null,具體取決於您在哪個執行緒上執行驗證,或者在非 http 請求中,例如在單元測試中。
您很可能希望抽像出對 .Current 的呼叫,以便創建更多可測試的程式碼。為此,讓您的抽象成員返回一個 HttpContextBase,如下所示:
return new HttpContextWrapper(HttpContext.Current);這種抽象將允許您傳入模擬 http 上下文基礎實例,以便於測試。