如何在Validation Summary中显示Catch块中的异常信息
实现ValidationSummary显示批量邮件异常信息
当然可以实现!我来给你讲清楚怎么在后台按钮点击事件里,把邮箱相关的异常信息显示到ValidationSummary控件中:
步骤1:调整后台Catch块代码
把你原来追加文本框的代码,替换成动态添加自定义验证错误的逻辑:
catch(Exception ex) { // 创建一个自定义验证器用于承载异常信息 CustomValidator emailErrorValidator = new CustomValidator(); // 设置要显示的异常信息 emailErrorValidator.ErrorMessage = ex.Message; // 标记该验证器为无效状态 emailErrorValidator.IsValid = false; // 如果你的ValidationSummary设置了ValidationGroup,这里要对应设置相同的组名 // 比如你的ValidationGroup叫"EmailBatchGroup",就加上下面这行 // emailErrorValidator.ValidationGroup = "EmailBatchGroup"; // 将验证器添加到页面的验证集合中 Page.Validators.Add(emailErrorValidator); // 触发页面验证,让ValidationSummary刷新显示所有错误 Page.Validate(); // 如果用了ValidationGroup,就传组名:Page.Validate("EmailBatchGroup"); }
步骤2:确保页面上的ValidationSummary配置正确
检查你的ASPX页面里的ValidationSummary控件,确保它的配置能正常接收并显示这些错误:
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowSummary="true" DisplayMode="BulletList" HeaderText="发送邮件时出现以下错误:" <!-- 如果用了ValidationGroup,加上下面这行 --> <!-- ValidationGroup="EmailBatchGroup" --> />
为什么这样做?
- 动态创建的
CustomValidator会自动被ValidationSummary识别,每个异常对应一条错误条目,刚好满足你5个错误邮箱显示5条信息的需求 - ValidationSummary自带的列表样式(比如BulletList)比手动拼接文本框内容更整洁,也符合Web Forms的验证控件规范
- 如果你设置了ValidationGroup,能确保这些错误只在特定的验证场景下显示,不会和页面其他验证混淆
这样修改后,测试批量错误邮箱时,ValidationSummary就会逐条展示所有的异常信息啦!
内容的提问来源于stack exchange,提问作者Preet
相关产品推荐
相关产品推荐

