C# ASP.NET中的变量

C# ASP.NET中的变量,c#,asp.net,webforms,C#,Asp.net,Webforms,我最近从Windows窗体切换到ASP.NET Web窗体,我遇到了一个意想不到的问题。在好的Web表单中,我可以在表单类中创建一个字段并分配给它。所以,如果我想让一个控件在一个事件上升起一个标志(比如用户按钮单击),我可以声明Boolean并从表单方法分配给它。然后我可以在不同的事件上通过不同的方法检查标志的状态。 看起来它在网络表单中并不多见。我的字段(或全局变量,如果您愿意)的值从我初始化它们的那一刻起保持不变。 这可能很简单,但对我来说,这是一个相当令人沮丧的问题。我可以在会话中存储我的

我最近从Windows窗体切换到ASP.NET Web窗体,我遇到了一个意想不到的问题。在好的Web表单中,我可以在表单类中创建一个字段并分配给它。所以,如果我想让一个控件在一个事件上升起一个标志(比如用户按钮单击),我可以声明Boolean并从表单方法分配给它。然后我可以在不同的事件上通过不同的方法检查标志的状态。 看起来它在网络表单中并不多见。我的字段(或全局变量,如果您愿意)的值从我初始化它们的那一刻起保持不变。 这可能很简单,但对我来说,这是一个相当令人沮丧的问题。我可以在会话中存储我的VAUE,但我认为这不是一个正确的方法。问题是我需要存储很多变量,因为我为SQL接口应用程序编写代码。在Windows窗体和Web窗体中从来没有出现过一个问题,我一直在发牢骚。
最终,我需要像LINQ to SQL Class对象那样存储对象以重用它们,因此我非常希望得到一些指导。

我建议您查看回发、页面生命周期以及ASP.NET如何处理客户端请求。为了更好地理解ASP.NET表单,您应该花时间阅读页面生命周期、事件以及它们的触发顺序。这样您就可以理解为什么您的变量似乎没有被更新

我建议您查看回发、页面生命周期以及ASP.NET如何处理客户端请求。为了更好地理解ASP.NET表单,您应该花时间阅读页面生命周期、事件以及它们的触发顺序。这样您就可以理解为什么您的变量似乎没有被更新

将单击按钮后不希望执行的页面加载内容设置为以下条件:

if (!IsPostBack)
{
    // do something
    return;
}

将单击按钮后不希望执行的页面加载内容设置为以下条件:

if (!IsPostBack)
{
    // do something
    return;
}

您还应该阅读状态管理,如viewstate、session等。

您还应该阅读状态管理,如viewstate、session等。

在继续之前,您应该阅读ASP.Net webforms页面周期,特别是回发时发生的情况。在继续之前,您应该阅读ASP.Net webforms页面周期,特别是在邮件背面发生了什么。