从验证程序中删除的字符串仍然显示在项目中

时间:2013-03-22 13:30:09

标签: c# asp.net webforms sitecore customvalidator

如果可能的话,我正在尝试将表单放在ASP验证框架中。最近重新考虑一些验证似乎是谨慎的,因此我摆脱了四个验证器并用一个CustomValidator替换它们。现在我有两个CustomValidator s(之前我有一个CustomValidator和四个RegulorExpressionValidator s。

所以这是奇怪的事情。我的一个自定义验证器以某种方式显示了我删除的验证器的错误消息。我实际上已经仔细检查并确认它显示的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" />

1 个答案:

答案 0 :(得分:1)

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

如果未指定Text或使用ValidationSummary,则使用ErrorMessage。

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