在我的 ASP.Net 应用程序中,我使用 viewstate 来存储网格的数据,我使用公共类来创建 viewstate 对象,如下所示。
public static PageViewState CurrentViewState
{
get
{
if (_app == null)
{
Initialize();
}
return _app;
}
}
/// <summary>
/// Creates new object for singleton class
/// </summary>
private static void Initialize()
{
PageViewState _viewstate = new PageViewState();
_app = _viewstate;
}
/// <summary>
/// Returns viewstate for specified page name
/// </summary>
/// <param name="_page">string : Name of the page</param>
/// <returns></returns>
public object this[string _page]
{
get
{
if (ViewState[_page] != null)
return ViewState[_page];
else
return null;
}
set
{
ViewState[_page] = value;
}
}
我使用的是静态属性,当多个用户在 aspx.cs 中访问它时是否安全。
Datatable _dtable = (Datatable)PageViewState.CurrentViewState["MyPage"];
ViewState 以隐藏字段的形式将数据存储在客户端,因此对于每个用户来说它应该是唯一的,我对此是否正确。