HttpApplicationState недоступен в контроллере MVC
Я использую MVC2 и VS2010 для разработки веб-сайта, и мне нужно использовать глобальные значения Application State. Я могу установить значение, как 'Application["hit"]=0;' в Global.asax, но при попытке использовать то же самое в контроллере MVC всегда появляется следующая ошибка:
Имя "Приложение" не существует в текущем контексте.
Я также попытался использовать в Global.asax для определения глобальной переменной, но он вызывает следующую ошибку:
Пространство имен не может напрямую содержать элементы, такие как поля или методы
Я ищу способ определения глобальных значений Application State, которые доступны во всех контроллерах моего веб-приложения MVC2. Я что-то опускаю? Мой контроллер выглядит так:
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();
}
}
}
Я ценю любые решения и / или предложения.
Спасибо, мердад
3 ответа
Я думаю, что в MVC3 вы можете получить доступ к реальному объекту HttpApplicationState через
HttpContext.ApplicationInstance
имущество. То есть:
HttpApplicationState application = HttpContext.ApplicationInstance.Application
В ASP.NET MVC2 я использую
HttpContext.Application["foo"] = "bar";
и получить
HttpContext.Application["foo"]
Вы можете использовать статический класс с внутренним словарем и индексатором.
Кроме того, вы пробовали HttpContext.Current.Application
?