C# 我可以在ASP.NET页面类中将HiddenField替换为私有变量吗?
我已经被移交了一个ASP.NET web应用程序,以获得支持和开发。在浏览webforms的代码时,我发现C# 我可以在ASP.NET页面类中将HiddenField替换为私有变量吗?,c#,asp.net,C#,Asp.net,我已经被移交了一个ASP.NET web应用程序,以获得支持和开发。在浏览webforms的代码时,我发现 <asp:HiddenField .../> 某些页面中的元素,主要用于存储某些ID(员工ID、办公室ID等)。我正在考虑将它们替换为定义它们的同一页面类中的类级变量(在代码隐藏中) 它会导致应用程序执行中出现一些问题吗?使用变量将不起作用,因为在回发过程中没有维护这些值 在本例中,我将使用与ViewState组合的属性 private int employeeID {
<asp:HiddenField .../>
某些页面中的元素,主要用于存储某些ID(员工ID、办公室ID等)。我正在考虑将它们替换为定义它们的同一页面类中的类级变量(在代码隐藏中)
它会导致应用程序执行中出现一些问题吗?使用变量将不起作用,因为在回发过程中没有维护这些值 在本例中,我将使用与ViewState组合的属性
private int employeeID
{
get { return (int)(ViewState["employeeID"] ?? 0); }
set { ViewState["employeeID"] = value; }
}
它在回发期间保持该值,开销比HiddenField
控件小,并且在ViewState中可以存储整个对象
如果要在整个用户会话期间保留该值,请将
ViewState
替换为Session
,以使用SessionState,因为在回发期间不会维护该值,所以使用变量将不起作用
在本例中,我将使用与ViewState组合的属性
private int employeeID
{
get { return (int)(ViewState["employeeID"] ?? 0); }
set { ViewState["employeeID"] = value; }
}
它在回发期间保持该值,开销比HiddenField
控件小,并且在ViewState中可以存储整个对象
如果要在整个用户会话期间保留该值,请将
ViewState
替换为Session
以使用SessionState问题是,为什么要这样做?看起来像是一个黑客或是某种解决方法。。。您需要开发一个优雅的解决方案…您想要实现什么?page类在回发期间不会保留变量的值,您的解决方案将无法工作。hiddenfield的存在是有原因的,可以通过单击按钮(例如,postback)将id发布回服务器。为什么不试试呢?但我认为它确实会造成伤害。隐藏字段通常用于在回发时在客户端和服务器之间传递状态。当用户单击某个按钮提交时,您的私有字段早就消失了。@Ahmed ilyas我正在考虑用更少的混乱来修改代码并使其更简单。问题是,为什么要这样做?看起来像是一个黑客或是某种解决方法。。。您需要开发一个优雅的解决方案…您想要实现什么?page类在回发期间不会保留变量的值,您的解决方案将无法工作。hiddenfield的存在是有原因的,可以通过单击按钮(例如,postback)将id发布回服务器。为什么不试试呢?但我认为它确实会造成伤害。隐藏字段通常用于在回发时在客户端和服务器之间传递状态。当用户单击某个按钮上的“提交”时,您的私有字段早就消失了。@Ahmed ilyas我在考虑用更少的混乱来修改代码并使其更简单。通过减少开销,您的意思是说它不会在回发时从客户机传递到服务器并返回到客户机吗?或者你是说别的什么?不正确。ViewState的开销更大。我已经多次回答了这些问题,但现在更愿意给出一个链接:通过减少开销,您的意思是它不会在回发时从客户机传递到服务器并返回到客户机吗?或者你是说别的什么?不正确。ViewState的开销更大。我已经多次回答了这些问题,但现在我想给出一个链接: