【发布时间】:2014-06-12 17:01:46
【问题描述】:
我正在尝试存储一些临时列表数据,以便让用户在保存到数据库之前对其进行编辑。
public List<ScheduleEntry> NewScheduleEntry
{
get
{
String PersistentName = "List_ScheduleEntry";
if (ViewState[PersistentName] == null || !(ViewState[PersistentName] is List<ScheduleEntry>))
{
ViewState[PersistentName] = new List<ScheduleEntry>();
}
return ViewState[PersistentName] as List<ScheduleEntry>;
}
}
public List<ScheduleEntry> ListView_CourseScheduleEntry_GetData()
{
return NewScheduleEntry;
}
这不是我第一次使用这种技术,但它不起作用。 没有例外,我可以看到 ListView_CourseScheduleEntry_GetData 一直运行到 return 语句。
但如果我将 ViewState 更改为 Session(没有其他更改),它就可以正常工作。不幸的是,我不应该在这里使用 session,因为它是一个页面事务。
视图状态的 Base64 编码字符串是否可能被列表数据破坏?
【问题讨论】:
-
ScheduleEntry类是否标记为Serializable?您是否还向列表中添加了一些项目? -
@Markus 你是对的。实际上 ScheduleEntry 来自 EF,我必须为所有相关类标记 [Serializable] .....
标签: asp.net webforms viewstate