我有一个页面,其中包含一些搜索字段来查询数据库并显示结果。视图状态需要保留下拉列表中的项目列表。
在 Firefox (3) 和 Chrome 中一切正常,但在 Internet Explorer 中失败,但只是有时(某些操作,例如重置表单,实际上只是使用一些查询字符串参数执行 response.redirect)...... Viewstate 被转储到 URL 上,并引发错误页面。
有没有人遇到过这个?也许一些关于什么可能导致在 IE 中发生这种情况的指针?
多谢,
格雷格
更新:
在进一步调查中,我确定实际错误是这样的:
“viewstate MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。不能在集群中使用 AutoGenerate。”
一些可能有帮助的更多信息:这是由托管在内容管理系统 (Umbraco) 中的用户控件引起的,这可能与将视图状态传递给页面的原因有关(因为控件包含在CMS 中的更大页面)。我将对此进行进一步调查,但任何其他建议将不胜感激。
欢呼格雷格
更新 2:
任何人都可以建议为什么这只发生在 IE(而不是 FF 或 Chrome)中?如果其他浏览器可以很好地处理它,这似乎不太可能是控件更改或机器键或我在该地方阅读的其他建议的问题。
任何想法 IE 的不同之处可能导致此失败?
解决方案:
原来这是一个非常愚蠢的问题——我在 CMS 中使用了错误的主模板,因此有 2 个表单标签。去掉多余的form标签,问题解决!
非常感谢bendewey 帮助我解决了这个问题(请参阅bendewey 帖子中的评论)。
那是我生命中的 4 个小时,我很想回来……但很高兴我现在可以继续前进。再次感谢 Stack Overflow 社区 :)