我已经移交了一个ASP.NET Web应用程序以获得支持和开发。在浏览webforms的代码时,我看到了
<asp:HiddenField .../>
某些页面中的元素,主要用于存储某些ID(员工ID,办公室ID等)。我想用它们定义的同一个Page类中的类级变量替换它们(在代码隐藏中)。
它会在应用程序执行中引起一些问题吗?
答案 0 :(得分:5)
使用变量将不起作用,因为在回发期间不会保留这些值。
在这种情况下,我会使用与ViewState结合的属性。
private int employeeID
{
get { return (int)(ViewState["employeeID"] ?? 0); }
set { ViewState["employeeID"] = value; }
}
在回发期间维护该值并且比HiddenField
控件更少开销,并且在ViewState中您可以存储整个对象
如果要在整个用户会话期间保留该值,请将ViewState
替换为Session
以使用SessionState