以下を修正する方法はありますか?
TransferResult の優れた実装がここにあります。これは 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この回答には、 MVC3 で動作する TransferResult の変更された実装が含まれています。以前よりもさらにシンプルになっていることがわかります。