【发布时间】:2011-05-09 15:33:30
【问题描述】:
任何想法如何解决以下问题?
有一个很好的 TransferResult 实现可用here,它在 MVC 1,2 上运行良好,但在 MVC 3 RC 上不运行。
public class TransferResult : RedirectResult
{
public TransferResult(string url): base(url)
{
}
public override void ExecuteResult(ControllerContext context)
{
var httpContext = HttpContext.Current;
httpContext.RewritePath(Url, false);
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);
}
}
在 MVC 3 RC 上,httpHandler.ProcessRequest 失败并显示 'HttpContext.SetSessionStateBehavior' can only be invoked before 'HttpApplication.AcquireRequestState' event is raised.
如何重写此代码以使其工作?
UPD:如果在 VS 2010 内置开发服务器上运行,代码可以工作,但无法在 IIS 7.5 localhost 上运行。问题仍未解决。
UPD2 TransferResult 的 answer contains a modified implementation 与 MVC3 配合使用。结果发现它比以前更简单了。
【问题讨论】:
-
你解决过这个问题吗?
-
是的,这是可行的解决方案:stackoverflow.com/questions/799511/…
标签: asp.net-mvc asp.net-mvc-3 server.transfer