2010-07-09 22 views
9

Estoy usando MVC2 y VS2010 desarrollando un sitio web y necesito usar valores globales de estado de la aplicación. Puedo establecer un valor como 'Aplicación ["hits"] = 0;' en Global.asax, pero cuando se trata de utilizar el mismo en un controlador MVC siempre consigo el error siguiente:HttpApplicationState no disponible en un controlador MVC

El nombre de 'Aplicación' no existe en el contexto actual

También he intentado usar en el Mundial. asax con el fin de definir una variable global, pero se dispara el siguiente error:

un espacio de nombre no puede contener directamente a miembros tales como campos o métodos

Busco una forma de definir los valores de estado de la aplicación globales que están disponibles dentro de todos los controladores de mi aplicación web MVC2. ¿Estoy omitiendo algo? Mi controlador se ve así:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace MVCApplication.Controllers 
{ 
    [HandleError] 
    public class HomeController : Controller 
    { 
     public ActionResult Index() 
     { 
      Application["hits"] += 1; 

      ViewData["Message"] = "Welcome to ASP.NET MVC!"; 
      return View(); 
     } 

    } 
} 

Agradezco cualquier solución y/o sugerencia.

Gracias Mehrdad

+0

http://stackoverflow.com/questions/2266533/does-asp-net-mvc-have-application-variables – David

Respuesta

10

Yo creo que en MVC3 puede obtener acceso a un objeto real a través de la HttpApplicationState

HttpContext.ApplicationInstance 

propiedad. Es decir:

HttpApplicationState application = HttpContext.ApplicationInstance.Application 
0

se puede utilizar una clase estática con un diccionario interno y un indexador.

Además, ¿has probado HttpContext.Current.Application?

+0

Gracias Jaroslav, el problema está resuelto mediante el siguiente en los controladores: HttpContext.Application ["hits"] – Mehrdad

2

En ASP.NET MVC2, yo uso

HttpContext.Application["foo"] = "bar"; 

y para obtener

HttpContext.Application["foo"] 
Cuestiones relacionadas