DefaultCOntrollerFactoryをカスタムControllerFactoryクラスに変更します。デフォルトのController.TempDataProviderはSessionStateTempDataProviderを使用します。あなたはそれを変えることができます。
1.web.config/system.web/sessionState:mode="Off"を設定します。
2.DictionaryTempDataProviderクラスを作成します。
public class DictionaryTempDataProvider : ITempDataProvider
{
public IDictionary<string, object> LoadTempData(ControllerContext controllerContext)
{
return new Dictionary<string, object>();
}
public void SaveTempData(ControllerContext controllerContext, IDictionary<string, object> values)
{
}
}
3.DictionaryTempDataControllerFactoryを作成します
public class DictionaryTempDataControllerFactory : DefaultControllerFactory
{
public override IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName)
{
var controller = base.CreateController(requestContext, controllerName) as Controller;
if (controller!=null)
controller.TempDataProvider = new DictionaryTempDataProvider();
return controller;
}
}
4. global.asax.cs Apprication_Startイベントで、DictionaryTempDataControllerFactoryを設定します。
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
ControllerBuilder.Current.SetControllerFactory(
new DictionaryTempDataControllerFactory()
);
}