我在使用 Safari 5.1.5 时遇到了一个奇怪的问题,我有一个使用 wziard 控件的 ASP.NET 页面(版本 4)。在我正在收集信息的向导的特定步骤中,用户需要单击链接按钮,该按钮执行回发并在向导的同一步骤中填充数据网格。
数据被加载到数据集中,数据绑定工作正常,信息显示在页面上。与此同时,数据集被加载到会话对象中,以便稍后在向导中使用。
当用户完成此特定步骤时,单击下一步按钮(在向导上)并执行检查以确保提供了充足的信息。这是通过从会话对象中检索数据集并询问相关表来完成的。
在 Google Chrome、IE 和 Opera 中,这可以正常工作,并且检索到数据集并且数据存在。但是在 Safari 5.1.5 和 Firefox 14 中,数据集是空的。所有浏览器都运行完全相同的代码。
我已经在使用 Google 和 Safari 时逐步完成了代码,当在 Safari 中,数据集的数据表是空的,即使它用于填充数据网格。
我虽然可能在加载到会话对象之前数据集已损坏,但我已经通过在将数据集分配给会话变量之后立即从会话中检索数据集然后将数据集序列化为 XML 来测试这一点。XML 文件显示信息已加载到数据表和会话中。
有没有人见过这样的行为,或者对从这里去哪里有任何建议。
在此先感谢格伦。
已解决: 问题是 Safari 正在执行双重回发,第一次是正确的,但第二次是使用视图状态信息进行回发,因此 IsPostBack 为假,会话变量正在再次初始化。