2010-09-08 85 views
1

我有下面的代码,直到其他人把其他代码放在现在分类的网站中。MVC ASP.net会话是空的

这是我的代码:

var existingContext = HttpContext.Current; 
var writer = new StringWriter(); 
var response = new HttpResponse(writer); 
var context = new HttpContext(existingContext.Request, response) { User = existingContext.User }; 
HttpContext.Current = context; 
HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Default); 
HttpContext.Current.Session["Test"] = "test"; 
for (Int32 i = 0; i < existingContext.Session.Count; i++) 
{ 
    HttpContext.Current.Session.Add(existingContext.Session.Keys[i], existingContext.Session[i]); 
} 

这背后的想法是能够捕捉到一个视图的输出,并将其呈现为PDF。现在我唯一的问题是,当我将上下文分配回HttpContext.Current时,会话为空。我需要能够初始化会话,以便我可以将变量分配给它。

我也将增加,这是一个静态类

public static class ControllerExtensions 

任何线索里面?

+0

对不起代码视图事情搞砸了一点还是我做错了什么的代码应该是: – 2010-09-08 14:44:00

+0

VAR existingContext = HttpContext.Current; var writer = new StringWriter(); var response = new HttpResponse(writer); var context = new HttpContext(existingContext.Request,response){User = existingContext.User}; HttpContext.Current = context; HttpContext.Current.Session [“Test”] =“test”; (Int32 i = 0; i 2010-09-08 14:45:05

回答

1

我似乎已经解决了这个问题了现在,那就是删除线:

  var context = new HttpContext(existingContext.Request, response) { User = existingContext.User }; 
     HttpContext.Current = context; 
     HttpContext.Current.Request. 
     for (Int32 i = 0; i < existingContext.Session.Count; i++) 
     { 
      HttpContext.Current.Session.Add(existingContext.Session.Keys[i], existingContext.Session[i]); 
     } 
1

如果这是一个HttpHandler的内部发生,你需要将IRequiresSessionState接口添加到您的处理程序会话可用 -

 
public class HttpPdfWriteHandler : IHttpHandler, IRequiresSessionState { 
    [...] 
} 

http://msdn.microsoft.com/en-us/library/system.web.sessionstate.irequiressessionstate.aspx

+0

不幸的是这是发生在一个静态类 公共静态类ControllerExtensions – 2010-09-08 15:02:37

+0

我从原始代码:http://www.jimzimmerman.com/blog/2009/10/06/PdfResult+A+Custom+ActionResult + In + ASPNET + MVC.aspx and http://jamesmcc.wordpress.com/2010/06/02/pdfresult-a-custom-actionresult-in-asp-net-mvc2-updated/ – 2010-09-08 15:08:14