1
我在製作ControllerFactory
。在此課程中,我想要在方法CreateController
中訪問可在所有控制器中訪問的TempData
變量。在控制器外部使用TempData
public class ControllerFactory : IControllerFactory
{
public IController CreateController(RequestContext requestContext, string controllerName)
{
//TODO :IoC implementation or call comes here.
return null;
}
public void ReleaseController(IController controller)
{
var disposable = controller as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
public IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName)
{
//HERE I WANT TO HAVE ACCESS TO THE TempData
}
public SessionStateBehavior GetControllerSessionBehavior(System.Web.Routing.RequestContext requestContext, string controllerName)
{
return SessionStateBehavior.Default;
}
}
注:之前的代碼時達到一個頁面就被稱爲控制器,該機能的研究CreateController
目前INT這段代碼是下游。
任何想法如何在CreateController
方法中訪問TempData
?
我不認爲TempData的是什麼,你認爲它是完美的作品。 TempData是一個僅適用於一次讀取的臨時字典(在您訪問一次後它會自行刪除)。我很難在控制器工廠中找到TempData的任何有用用法,因爲這些數據將不再存在於控制器/視圖中。而且,更重要的是,如果用戶按下F5鍵,數據將會消失,因此控制器工廠不再需要重新渲染頁面。 TempData基本上僅用於短通知消息等,如果頁面刷新,則不需要重新呈現。 –
我舉個例子,爲了更好的理解。如果TempaData [「object」]!= null我想構建controller1,如果不是,我想構建默認控制器。所以,爲此,我需要訪問ControllerFactory中的臨時數據。請注意,TempData [「object」]可以由任何控制器使用。 –
好的,但是當你這樣做TempData [「object」]!= null時,它會刪除它,那是你想要的嗎? –