Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在页面重新加载时,是否销毁所有对象?_C#_Asp.net_Webforms - Fatal编程技术网

C# 在页面重新加载时,是否销毁所有对象?

C# 在页面重新加载时,是否销毁所有对象?,c#,asp.net,webforms,C#,Asp.net,Webforms,如何在c#/asp.net中创建一个在页面重新加载/回发后仍然存在的对象X的持久列表? 这在c#中从来都不是问题,但在asp.net中,回发将清除所有内容。asp.net是为协议而构建的,因此您无法在回发上找到对象。您可以改为使用视图状态 对象 简而言之,Microsoft®ASP.NET视图状态是 用于保存对Web窗体状态的更改的ASP.NET网页 跨越回发邮件 视图状态的作用 观察状态在生活中的目的很简单:它在那里保持状态 跨越回发邮件。(对于ASP.NET网页,其状态为属性 构成其控件层次

如何在c#/asp.net中创建一个在页面重新加载/回发后仍然存在的对象X的持久列表? 这在c#中从来都不是问题,但在asp.net中,回发将清除所有内容。

asp.net是为协议而构建的,因此您无法在回发上找到对象。您可以改为使用视图状态

对象 简而言之,Microsoft®ASP.NET视图状态是 用于保存对Web窗体状态的更改的ASP.NET网页 跨越回发邮件

视图状态的作用 观察状态在生活中的目的很简单:它在那里保持状态 跨越回发邮件。(对于ASP.NET网页,其状态为属性 构成其控件层次结构的控件的值。)这要求 “什么样的状态需要保持?”这个问题需要回答 这个问题,让我们先看看什么状态不需要 在回发中持续存在。回想一下,在 页面生命周期、创建的控件层次结构以及 将指定声明性语法中指定的属性。 因为这些声明性属性是在 构建控件层次结构时,每次回发都没有 需要在视图状态中存储这些属性值


您始终可以将项目保存到当前会话

例如:

Session["var1"] = // whatever you want

而您的会话对象将一直存在,直到当前会话过期为止,无论回发如何。

您熟悉a的概念吗?您是动态创建它们的吗?您是如何用C#而不是.NET编写代码的?或者你是特别指webforms吗?@Jeff我相信他放了ASP.NET而不仅仅是.NET,除非他在你发表评论后编辑了这篇文章。@mellamokb没有。。没听说过,我听到了。启用会话状态或视图状态对我有帮助吗?或者我应该用其他方法来解决这个问题吗?你可以使用viewstate,但如果你有小数据,因为它增加了请求/响应的大小。最好的办法可能是以某种方式禁用回发?我认为可以用jquery来完成,但不能用c#但是如何在每次页面重新加载/发回时将对象添加到列表中?好吧,对于会话,您所能做的就是使用会话对象。例如,您可以使用foreach循环遍历项目列表,并将Session[“Item”+counter]分配给它的值。因此,我可能要做的是在导致回发的事件上,继续并将这些值存储到会话中。我必须尝试以下操作:)这是一个按钮单击,它将对象添加到列表中(并触发回发)在一个完美的世界里,我不认为你必须这样做。除了你已经说过的以外,我不知道你的具体情况,但是当你处理无国籍问题时,你必须跳出思维定势,你知道@半生不熟