【问题标题】:Error message being overwritten on postback回发时错误消息被覆盖
【发布时间】:2012-08-23 08:16:44
【问题描述】:

当我将文件上传到我的服务器时,我有代码隐藏检查几种非法情况,然后我设置 asp:label 的文本以在发生错误时显示错误。

问题是即使if语句失败并且错误写入标签,文件上传也会回发,从而将页面重置为其原始状态并重置消息标签。

编辑和更新 在接受将发生回发后,我将错误消息加载到会话变量中,并在回发时检查了该变量是否存在错误并更新了 asp:list 以显示错误消息。

必须将更新 asp:label 的行放入 PreRender 事件中,因为 Load 事件发生在回发处理之前。导致页面必须回发两次才能显示消息。

U 希望这对任何人都有帮助。此外,如下所述,阅读ASP Page Life Cycle 会产生奇迹

【问题讨论】:

  • 第一篇文章让我头疼。我试图跟随的第二个,从来不知道有一个对象可以做到这一点。如果这是 php id,只需将其分配给会话 var 并在回发时检查它。
  • 您在ASP.net page lifecycle 的哪个位置检查非法情况?同样,您何时设置错误消息?
  • 我刚刚提到了页面生活方式以及在加载事件之后回发事件是如何发生的。只需将将错误消息从会话写入 asp 标签的函数移动到 PreRender 事件中即可解决问题,因为该消息能够显示在回发页面上。
  • @Reahreic:页面生命周期...不是生活方式。不过有趣的转折。

标签: asp.net file-upload


【解决方案1】:

我建议查看有关 Validating ASP.NET Server Controls 的非常全面的 MSDN 文章。基本上,您将在前端添加以下内容:asp:ValidationSummaryasp:CustomValidator 以及处理“非法检查”的后端代码,然后将页面 IsValid 设置为 truefalse,取决于代码隐藏中客户验证功能的结果。

这里有一个关于 SO 的例子:How to Add Error Message to Validation Summary

【讨论】:

    猜你喜欢
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2020-04-16
    • 1970-01-01
    • 2013-07-13
    • 2013-06-09
    • 1970-01-01
    相关资源
    最近更新 更多