Exp*_* be 1 asp.net asp.net-mvc-3
我想在构造函数方法中将cookie值定义为类变量,以使所有方法都可以使用Cookie.
但我收到一条错误消息,
你调用的对象是空的.
public class OrdersController : Controller
{
string userData;
public orderConroller(){
string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie authCookie = Request.Cookies[cookieName];
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
userData = authTicket.UserData;
}
public void a(){
//I need Cookie
}
public void b(){
//I need Cookie
}
public void c(){
//I need Cookie
}
public void d(){
//I need Cookie
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?@.@
谢谢!
您不能HttpContext在Request控制器构造函数中使用(在您尝试访问对象的情况下),因为它尚未初始化.您可以访问它的最早方法是Initialize您可以覆盖的方法.
所以:
public class OrdersController : Controller
{
private string userData;
protected override void Initialize(RequestContext requestContext)
{
base.Initialize(requestContext);
var request = requestContext.HttpContext.Request;
string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie authCookie = request.Cookies[cookieName];
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
userData = authTicket.UserData;
}
public void a() {
//I need Cookie
}
public void b() {
//I need Cookie
}
public void c() {
//I need Cookie
}
public void d() {
//I need Cookie
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |