asp.net - 回发时,如何将错误消息添加到验证摘要中?

标签 asp.net validation

两个问题:

在回发时,当用户单击“提交”时,如何将错误消息添加到验证摘要中?

是否也可以使用内置的 .net 验证控件突出显示特定文本框?

最佳答案

动态创建 CustomValidator 控件并将其直接添加到 Page.Validators 集合中。

Dim err As New CustomValidator
err.ValidationGroup = "MyGroup"
err.IsValid = False
err.ErrorMessage = "The password is invalid"
Page.Validators.Add(err)

与将 CustomValidator 添加到标记不同,此方法允许您基于服务器端业务逻辑添加任意数量的任意错误消息。

请注意,您也可以直接将其添加到页面,但需要遵循一些规则:

  1. 您必须将控件添加到与验证组的控件相同的命名容器中。
  2. 如果您不希望验证消息出现在页面中的随机位置,则必须将验证器添加到特定容器,或者需要使用 CSS 类或样式抑制它。<

您还可以创建 custom class and implement IValidator ,这使您可以通过一行代码添加消息,但此方法不支持验证组。

根据 Anders Fjeldstad 的建议,这里有一组方便的扩展方法。

Imports Microsoft.VisualBasic
Imports System.Runtime.CompilerServices

Public Module PageExtensions

    <Extension()> _
    Public Sub AddValidationError(ByVal p As System.Web.UI.Page, ByVal errorMessage As String)
        p.AddValidationError(errorMessage, String.Empty)
    End Sub

    <Extension()> _
    Public Sub AddValidationError(ByVal p As System.Web.UI.Page, ByVal errorMessage As String, ByVal validationGroup As String)
        Dim err As New CustomValidator
        err.ValidationGroup = validationGroup
        err.ErrorMessage = errorMessage
        err.IsValid = False
        p.Validators.Add(err)
    End Sub

End Module

关于asp.net - 回发时,如何将错误消息添加到验证摘要中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/777889/

相关文章:

asp.net - 本地主机页面不起作用。本地主机重定向你太多次

c# - Asp.net Web api2 模拟 webClient 调用

jquery - 用于 jQuery 验证的复选框数组选择器

python - 我如何执行 django 模型验证以排除

html - 如何从图标集图片中加载一个图标

asp.net - 测试本地化网站

android - 膨胀异常 - 膨胀 TextView 时出错

html - 验证 CSS - 背景重复问题

javascript - 区分代码注释和文本注释

c# - 将 varchar 值 'null' 转换为数据类型 int 时转换失败