页面回发时如何持久化类对象 [英] how to persist a class object when page PostBack

查看:61
本文介绍了页面回发时如何持久化类对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我创建了一个WebForm.aspx页面,并在WebForm.aspx文件的背后代码中创建了MyClass.cs类的对象.


Hi,

I have created a page WebForm.aspx and in Code behind file of WebForm.aspx and I have created an object of a class MyClass.cs.

Like

if(!Page.IsPostback) {
    objMyClass= new MyClass();
}

.

但是,当我单击WebForm.aspx页面的按钮并尝试访问objMyClass对象时,它将设置为null.

页面PostBack时如何持久保存MyClass对象?

还有一件事是MyClass还可以创建其他类对象.

.

However when I click on button of WebForm.aspx page and try to access objMyClass object then it is set as null.

How to persist MyClass object when page PostBack?

One more thing is that MyClass is also resposnsible to create some other class object also.

推荐答案

您可以序列化该类并将其存储在viewState中.这样viewState将在页面回发期间保留对象.


您也可以尝试制作静态属性,并可以将其分配给属性.
you can serialize the class and can store it in viewState. so that viewState will preserve object during Page Postback.


also you can try to make static property and can strore assign it to property.


将对象保存在ViewState

确保您的课程可序列化..

ViewState["__MyClass"] = objMyClass;

页面加载后现在处于打开状态..访问viewstate以使对象恢复原状

MyClass objMyClass = ViewState["__MyClass"] as MyClass;
Save your object in ViewState

make sure your class is serializable..

ViewState["__MyClass"] = objMyClass;

now on after page is loaded.. access viewstate to get your object back

MyClass objMyClass = ViewState["__MyClass"] as MyClass;


您需要做的就是写
Session [''MyObject''] = objMyClass;
然后从Session [''MyObject'']检索它,它是持久的,我相信不需要序列化
All you need to do is write
Session[''MyObject'']=objMyClass;
Then retrieve it from Session[''MyObject''] which is persistent nad I beleive no serialization is required


这篇关于页面回发时如何持久化类对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆