将Business实体分配给隐藏变量

时间:2010-06-26 09:18:08

标签: asp.net variables hidden

比方说,如果我有一个商业实体 - >客户,customerIdcustomerNamecustomerType。我创建了一个asp:隐藏变量hdnCustomer来runat =“server”

如果我想将客户业务实体(在后面的代码中)的值序列化到hdnCustomer,那么我该怎么做?一旦序列化,我将如何反序列化它?

// Pseudo code

Collection<Customer> customerList = new Collection<Customer>();

customerList = BusinessAccess.GetCustomerList();

hdnCustomer = serialize and assign the value of 'customerList' to hdnCustomer;

...

...

// Later on a select index change of one of the drop down lists

在下拉列表的事件处理程序中:

{

Collection<Customer> customerList = new Collection<Customer>();

customerList = deserialize the value from hdnCustomer

int a = Convert.ToInt32(ddlDropDown.SelectedValue);

foreach(a in customerList)

{

// Do something

}

}

2 个答案:

答案 0 :(得分:0)

我认为.net已经提供了一些课程,look at this example

答案 1 :(得分:0)

您可以使用XmlSerializer与XML串行:

  

http://support.microsoft.com/kb/815813

但是,如果您只是将对象存储在ViewState []集合中,该对象应该更好用:

ViewState["Customer"] = customerList;

它做了同样的事情:将可序列化对象存储在页面中,对用户隐藏:但它不会是人类可读的格式。

(编辑:要反序列化,只需获取ViewState [“Customer”]的值,在使用之前检查null!)

编辑2:关于在ViewState中存储对象的有用链接:

  

http://www.beansoftware.com/ASP.NET-Tutorials/ViewState-In-ASP.NET.aspx

希望有所帮助。