Я разрабатываю веб-приложение 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
)