3 回答

TA貢獻(xiàn)2012條經(jīng)驗 獲得超12個贊
可能有用。我需要在控制器的構(gòu)造函數(shù)中執(zhí)行操作,該操作出現(xiàn)在MVC生命周期的這一點,this尚未初始化,并且ControllerContext = null。我沒有研究MVC生命周期并找到要覆蓋的適當(dāng)函數(shù)名稱,而是在中找到了操作RequestContext.RouteData。
但是,為了這樣做,就像HttpContext構(gòu)造函數(shù)中的任何相關(guān)用法一樣,您必須指定完整的名稱空間,因為this.HttpContext還沒有初始化。幸運的是,它似乎System.Web.HttpContext.Current是靜態(tài)的。
// 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,它似乎在我的應(yīng)用程序中可以正常工作。
- 3 回答
- 0 關(guān)注
- 495 瀏覽
添加回答
舉報