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?

Другие вопросы по тегам