我刚接触到AJAX更新面板的奇怪行为。第一个想法让我感到尴尬的是,我注意到当我在异步回发期间抛出异常时,它被环境所吞噬。
由于这是我第一次遇到这样的问题,我开始做实验 - 尝试抛出不同类型的异常,或者在updatePanel之外抛出相同的异常(例如在Page_Init事件中)。结论是,当异步回发中抛出异常时,环境会吞下它,并且页面渲染就像没有发生任何事情一样(这是不可察觉的点)。但是当我在正常的页面生命周期中抛出异常时,异常转发以常规方式和页面按预期失败(我希望对我的推论是正确的)
问题是如何启用异常抛出
(顺便说一下,虽然我一直在写这个消息,但我注意到由于业务逻辑的变化,不再需要抛出上述异常,但无论如何我都感兴趣为什么会发生这种情况)
updatePanel的第二个问题是,当我在Page_Load中设置它{up.Visible = false;}时,在某个方法设置它{up.Visible = true; up.Update()} - 它仍然没有得到解决。我在两个地方设置了断点;当页面呈现时,.visible设置为true,但无论如何它仍然是不可见的。我没有看到任何明显的原因。
感谢。
答案 0 :(得分:2)
要在更新面板代码中抛出错误时启用asp.net错误屏幕,您需要在ScriptManager中进行设置:
EnablePartialRendering="false"