Как сохранить значение глобальных переменных между вызовами различных методов действий в MVC3?

Я разрабатываю веб-приложение ASP.NET MVC 3 с использованием Razor и C #.

Я только что обнаружил, что у меня есть проблемы с глобальными переменными, вероятно, потому, что я относительно новичок в MVC.

У меня есть контроллер с некоторыми глобальными переменными и методами действий. Я объявил глобальную переменную, чтобы позволить методам действия манипулировать ею и отражать манипуляции для всех методов действия. У меня следующая ситуация:

public class myController : Controller
{
    private string _MyGlobalVariable;

    public ActionResult Index()
    {
       _MyGlobalVariable = "Hello";
       //other code
       return View("MyView");
    }

    public ActionResult Print()
    {
       _MyGlobalVariable += "Print";

       return View("PrintView", _MyGlobalVariable);
    }
}

Метод действия Print () вызывается с помощью Html.ActionLink () из MyView View.

Удивительно то, что значение _MyGlobalVariable не сохраняется! Значит, значение _MyGlobalVariable перед инструкцией _MyGlobalVariable + = "Print" равно нулю.

Я ошибаюсь? Как я могу сохранить значение глобальных переменных между вызовами Views?

Спасибо

Francesco

PS: в моем конкретном случае глобальная переменная - это Dictionary , но я думаю, это не меняет логики.

PPS: Я знаю, что вы можете использовать ViewModels вместо глобальных переменных для передачи данных между методами действий, но в моем случае гораздо меньше кода, если я использую Dictionary , который обычно я не заключаю в ViewModels ( Я использую POCOs или Lists )

15
задан CiccioMiami 9 May 2011 в 15:51
поделиться