HttpApplicationState не доступен в контроллере MVC - PullRequest
9 голосов
/ 09 июля 2010

Я использую 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();
        }

    }
}

Я ценю любые решения и / или предложения.

Спасибо Mehrdad

Ответы [ 3 ]

10 голосов
/ 15 ноября 2011

I думаю , что в MVC3 вы можете получить доступ к реальному объекту HttpApplicationState через свойство

HttpContext.ApplicationInstance

.То есть:

HttpApplicationState application = HttpContext.ApplicationInstance.Application 
2 голосов
/ 14 января 2011

В ASP.NET MVC2 я использую

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

и получить

HttpContext.Application["foo"]
0 голосов
/ 09 июля 2010

Вы можете использовать статический класс с внутренним словарем и индексатором.

Кроме того, вы пробовали HttpContext.Current.Application?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...