Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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# ASP.NET Web窗体中的数据持久性和更新_C#_Asp.net - Fatal编程技术网

C# ASP.NET Web窗体中的数据持久性和更新

C# ASP.NET Web窗体中的数据持久性和更新,c#,asp.net,C#,Asp.net,我目前正在使用C#和ASP.NET(3.5)开发一个web应用程序/游戏。然而,我遇到了一个问题:每当我单击web表单上的按钮时,主页中使用的变量都被重置为null。我想知道是否有一种方法可以允许变量在整个应用程序的生命周期中持续存在,也可以允许从任何地方/任何时候访问变量 我现在面临的另一个问题是,如果不刷新页面,我似乎无法找到更新控件属性(如文本或颜色)的方法。有没有一种方法可以“静默”地更新这些属性,而不强制用户完成整个页面刷新周期 谢谢 使用会话集合为特定用户持久化。或者,使用静态变量在

我目前正在使用C#和ASP.NET(3.5)开发一个web应用程序/游戏。然而,我遇到了一个问题:每当我单击web表单上的按钮时,主页中使用的变量都被重置为null。我想知道是否有一种方法可以允许变量在整个应用程序的生命周期中持续存在,也可以允许从任何地方/任何时候访问变量

我现在面临的另一个问题是,如果不刷新页面,我似乎无法找到更新控件属性(如文本或颜色)的方法。有没有一种方法可以“静默”地更新这些属性,而不强制用户完成整个页面刷新周期

谢谢

  • 使用会话集合为特定用户持久化。或者,使用静态变量在应用程序域的生命周期内保持其值(对于所有站点用户,直到web服务器重新启动或崩溃)

  • 要以“静默”方式更新页面部分,请将它们包装到UpdatePanel(Microsoft AJAX库)中,或使用JavaScript(您可以使用一些JS库,如jQuery,使其更简单,并为您处理跨浏览器兼容性),以便动态操作文档的结构

  • 使用会话集合为特定用户持久化。或者,使用静态变量在应用程序域的生命周期内保持其值(对于所有站点用户,直到web服务器重新启动或崩溃)

  • 要以“静默”方式更新页面部分,请将它们包装到UpdatePanel(Microsoft AJAX库)中,或使用JavaScript(您可以使用一些JS库,如jQuery,使其更简单,并为您处理跨浏览器兼容性),以便动态操作文档的结构


  • 此外,要在不回发到服务器的情况下更新客户端对象,需要使用javascript。jQuery可能是您最好的选择。

    此外,要在不回发到服务器的情况下更新客户端对象,您需要使用javascript。jQuery可能是您的最佳选择。

    这实际上取决于变量的用途及其范围

    对于每个访问者不同的变量,您希望将这些变量放入

    对于整个应用程序的全局变量,并且对于每个访问者都是相同的,那么您可以使用静态变量,或者将它们作为变量放入web.config中


    在客户端上更改文本/颜色,听起来您可能需要使用一些javascript。是一个javascript库,它使许多此类操作变得更容易。

    这实际上取决于变量的用途及其范围

    对于每个访问者不同的变量,您希望将这些变量放入

    对于整个应用程序的全局变量,并且对于每个访问者都是相同的,那么您可以使用静态变量,或者将它们作为变量放入web.config中


    在客户端上更改文本/颜色,听起来您可能需要使用一些javascript。是一个javascript库,使许多此类操作更容易。

    您可能在页面级别(或应用程序级别)禁用了ViewState

    通常ASP.NET会将当前页面中每个控件的状态存储在Viewstate对象中,以在重新加载时保持其状态。查看代码中的EnableViewState对象(前端)或深入web.config

    如果还希望数据保持在页面级别,请使用Session对象并围绕timeout属性查找适合您和用户的值。slidengexpirationg也可能有用。如果你打算使用这个解决方案,你也可以问自己一些问题。您的应用程序是使用一台服务器还是可能部署到服务器场?如果是这样,考虑使用SQL会话状态而不是InPro,因为它将提供一个更加一致的“中心”的位置来存储不同服务器所消耗的会话数据。 关于在不刷新页面的情况下更新控件,您正在寻找一种称为Ajax的东西。微软已经发布了ASP.NET Ajax工具包,看看吧,特别是ASP:UpdatePanel,它可以让你“部分更新”页面,而不用重新加载其他内容


    这是更新控件属性的最简单、直接的方法,无需花费太多精力。

    您可能在页面级别(或应用程序级别)禁用了ViewState

    通常ASP.NET会将当前页面中每个控件的状态存储在Viewstate对象中,以在重新加载时保持其状态。查看代码中的EnableViewState对象(前端)或深入web.config

    如果还希望数据保持在页面级别,请使用Session对象并围绕timeout属性查找适合您和用户的值。slidengexpirationg也可能有用。如果你打算使用这个解决方案,你也可以问自己一些问题。您的应用程序是使用一台服务器还是可能部署到服务器场?如果是这样,考虑使用SQL会话状态而不是InPro,因为它将提供一个更加一致的“中心”的位置来存储不同服务器所消耗的会话数据。 关于在不刷新页面的情况下更新控件,您正在寻找一种称为Ajax的东西。微软已经发布了ASP.NET Ajax工具包,看看吧,特别是ASP:UpdatePanel,它可以让你“部分更新”页面,而不用重新加载其他内容


    这是更新控件属性的最简单、直接的方法,无需花费太多精力。

    关于(2)待定的编辑许可:“使用JavaScript(如果您使用jQuery之类的JS库,这将变得更容易。谢谢。我确实尝试过使用会话和应用程序变量。我唯一关心的是,我不太确定如何访问与特定应用程序相关的方法和属性