我正在尝试将我制作的游戏(WindowsFormApplication)转换为ASP.NET页面。
我的问题是我的WindowFormApplication中有很多“私有”变量,这些变量对游戏很重要。但是当我声明所有变量(在我的Page_Load中)之后,无论我做什么,它们都会变为null(单击按钮,刷新页面)。
无论如何都要在按钮之间保存我的变量(除了Session之外,因为我必须创建6个以上的会话)
答案 0 :(得分:5)
您需要将变量保存在ViewState
对象中:
ViewState["MyValue"] = 3;
...
int myValue = (int)ViewState["MyValue"];
如果您已有财产,则可以使用ViewState
保留该值,例如:
private int MyValue
{
set { ViewState["MyValue"] = value; }
get { return (int)ViewState["MyValue"]; }
}
如果您的价值需要在整个应用程序中可用(但特定于当前用户),则可以使用Session
代替ViewState
。
如果您担心人们会搞乱ViewState,那么这里有两个选择: