Dot-Net

可以在 ASP.NET MVC 的 ValidationAttribute 中訪問 HttpContext 嗎?

  • August 8, 2011

可以在 ASP.NET MVC 3HttpContext中訪問嗎?ValidationAttribute

我需要測試我的路線數據中的某些內容是否匹配,以便在我的驗證器上返回 true。

謝謝

是的,您可以訪問靜態 HttpContext.Current 屬性來獲取目前的 http 上下文。

此屬性可能返回 null,具體取決於您在哪個執行緒上執行驗證,或者在非 http 請求中,例如在單元測試中。

您很可能希望抽像出對 .Current 的呼叫,以便創建更多可測試的程式碼。為此,讓您的抽象成員返回一個 HttpContextBase,如下所示:

return new HttpContextWrapper(HttpContext.Current);

這種抽象將允許您傳入模擬 http 上下文基礎實例,以便於測試。

引用自:https://stackoverflow.com/questions/6977637