在我的asp.net页面中,我使用ajax,并且我想知道如何在进行ajax调用时保留变量数据。基本上在页面加载时,我从数据库下载大量信息并将其显示在页面上。然后在ajax调用期间,我想使用存储在变量中的数据,但问题是,在ajax调用期间,数据消失了,我必须重新下载数据。如何在asp.net中的ajax调用期间保持数据?
有没有办法在ajax调用期间保持它?
在我的asp.net页面中,我使用ajax,并且我想知道如何在进行ajax调用时保留变量数据。基本上在页面加载时,我从数据库下载大量信息并将其显示在页面上。然后在ajax调用期间,我想使用存储在变量中的数据,但问题是,在ajax调用期间,数据消失了,我必须重新下载数据。如何在asp.net中的ajax调用期间保持数据?
有没有办法在ajax调用期间保持它?
在ASP.net你有很多方法可以做到这一点,Session["YourNameHere"]
你有谷,直到使sesion被关闭或ViewState["YourNameHere"]
你在页面的值,直到它被关闭。
一些链接Using ViewState或 Using SesionState 我希望这可以帮到你。
编辑
使用视图状态。
首先把你的课程序列化。
[Serializable]
public class Fruits
{
public string Apple { get; set; }}
保存该值:
Fruits Fruit = YourMethod(); //Yor method that retrive the data from DataBase* ViewState["Fruit"] = Fruit;
当你使用ViewState的:
Fruits Fruit = ViewState["Fruit"]
我想使用viewstates,但我不知道如何在其中保存复杂的对象。我在这里做了另一个线程http://stackoverflow.com/questions/16470510/how-to-searalize-complex-objects-and-put-them-in-a-viewstate-in-asp-net。 – omega 2013-05-09 20:33:46
1秒,我会更新答案。 – 2013-05-09 20:38:09
I want to use the data stored in the variable, but the problem is, during the ajax call, that data goes away, and I have to re download the data again.
这不是问题,它是http和无状态环境的本质。
根据检索到的数据类型,有一些缓存值的机制: 应用程序状态,会话,缓存,cookie,静态字典。这实际上取决于数据的背景,使用场景,硬件等。
最好的方法是避免缓存对象,直到知道这是系统或此特定功能的瓶颈。
真的,在任何ajax或回发请求中,您将失去会话及其所有数据,并将以新的数据开始? – omega 2013-05-09 19:19:59
一个字:是的。这就是http这样的无国籍环境的本质。 – 2013-05-10 03:33:11
你能发布您的代码,并可能更阐述?我对这个有点困惑。 – tymeJV 2013-05-09 19:14:53