3 回答

TA貢獻2012條經驗 獲得超12個贊
可能有用。我需要在控制器的構造函數中執行操作,該操作出現在MVC生命周期的這一點,this尚未初始化,并且ControllerContext = null。我沒有研究MVC生命周期并找到要覆蓋的適當函數名稱,而是在中找到了操作RequestContext.RouteData。
但是,為了這樣做,就像HttpContext構造函數中的任何相關用法一樣,您必須指定完整的名稱空間,因為this.HttpContext還沒有初始化。幸運的是,它似乎System.Web.HttpContext.Current是靜態的。
// controller constructor
public MyController() {
// grab action from RequestContext
string action = System.Web.HttpContext.Current.Request.RequestContext.RouteData.GetRequiredString("action");
// grab session (another example of using System.Web.HttpContext static reference)
string sessionTest = System.Web.HttpContext.Current.Session["test"] as string
}
注意:可能不是訪問HttpContext中所有屬性的最受支持的方法,但是對于RequestContext和Session,它似乎在我的應用程序中可以正常工作。
- 3 回答
- 0 關注
- 501 瀏覽
添加回答
舉報