Я занимаюсь разработкой веб-приложения 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<K,V>
, но ядумаю, это не меняет логику.
PPS: я знаю, что вы можете использовать ViewModels вместо глобальных переменных для передачи данных между методами действия, но в моем случае гораздо меньше кода, если я использую Dictionary<K,V>
, который обычно яне переносить в ViewModels (я использую POCOs или Lists<T>
)