Definir um TempData[] em nosso Global.asax
Postado em : 10/05/2016
TempData[]
é uma propriedade da classe System.Web.Mvc.ControllerBase
, se você não está em um Controller
ela não é facilmente acessível, mas você pode chegar a ela uma vez que toda a cadeia que a define é construída pelo framework MVC.
TempData[]
é gerenciado pela Sessão SessionStateTempDataProvider
, você deve inserir o valor na sessão e depois tirá-lo.
Vamos inserir uma variável TempData['Mensangem']
quando nosso projeto for iniciado, esta variável pode ser recuperada em sua página e ser usada para exibir uma mensagem por exemplo.
Veja o código abaixo.
protected void Session_Start(object sender, EventArgs e) { // Declara datakey com o tipo de controle var dataKey = "__ControllerTempData"; var dataDict = HttpContext.Current.Session[dataKey] as IDictionary<string, object>; // Instancia o objeto caso nao exista if (dataDict == null) { dataDict = new Dictionary<string, object>(); } // Atribui sua mensagem ao TempData[] dataDict["Mensagem"] = "Sua Mensagem"; // Atribui a seu TempData[] a sessao HttpContext.Current.Session[dataKey] = dataDict; }
Pronto agora para recuperar sua mensagem em sua página basta acessa-la como TempData['Mensagem']
.