1

如果可能的话,我正在尝试在 ASP 验证框架内组合一个表单和工作。最近重新考虑一些验证似乎是谨慎的,所以我去掉了四个验证器并用一个CustomValidator. 现在我有两个CustomValidators(以前我有一个CustomValidator和四个RegulorExpressionValidators)。

所以这就是奇怪的事情。我的一个自定义验证器以某种方式显示了我删除的验证器的错误消息。我实际上已经仔细检查并确认string它显示的不再在项目中。它也不是我要部署到的目录中的任何位置。(我已经建造、清理和重建)。

此外,这似乎不是浏览器缓存问题,因为我已关闭缓存(FF Web Developer)。这个问题也会根据我在页面中放置验证器的位置而改变(再次验证这不是一些奇怪的缓存问题)。

我终于能够通过验证器标签内的内容来解决它。

所以这有效:

<asp:CustomValidator
        ID="validateUrl"
        OnServerValidate="ValidateWebsiteUrl"
        ClientValidationFunction="isUrlValid" 
        ControlToValidate="websiteURLInput"
        ValidationGroup="CommentGroup"
        runat="server" 
        ForeColor="#991112"
>Please enter a valid URL</asp:CustomValidator>

但这失败了:

<asp:CustomValidator
        ID="validateUrl"
        OnServerValidate="ValidateWebsiteUrl"
        ClientValidationFunction="isUrlValid" 
        ControlToValidate="websiteURLInput"
        ValidationGroup="CommentGroup"
        runat="server" 
        ForeColor="#991112"
        ErrorMessage="Please enter a valid URL" />

就像这样(没有错误消息):

<asp:CustomValidator
        ID="validateUrl"
        OnServerValidate="ValidateWebsiteUrl"
        ClientValidationFunction="isUrlValid" 
        ControlToValidate="websiteURLInput"
        ValidationGroup="CommentGroup"
        runat="server" 
        ForeColor="#991112" />
4

1 回答 1

1

验证器控件具有一个Text和一个ErrorMessage属性,在正常使用中,Text 会覆盖 ErrorMessage,并且标签内的内容与 Text 属性相同(与 Label.Text 一样)

如果未指定 Text 或使用 ValidationSummary,则使用 E​​rrorMessage。

我希望这可以帮助您找到真正的问题。

于 2013-03-22T15:44:01.900 回答