1

可能であれば、ASP 検証フレームワーク内でフォームと作業をまとめようとしています。最近、バリデーションのいくつかを再考することが賢明だと思われたので、4 つのバリデーターを取り除き、1 つに置き換えましたCustomValidator。今は 2 つCustomValidatorです (以前は 1 つとCustomValidator4 つありましたRegulorExpressionValidator)。

だからここに奇妙なことがあります。カスタム バリデータの 1 つに、削除したバリデータからのエラー メッセージが何らかの形で表示されていました。実際に再確認して、string表示されているものがプロジェクトに含まれていないことを確認しました。また、デプロイ先のディレクトリのどこにもありません。(私は構築し、掃除し、再構築しました)。

さらに、キャッシュをオフにしているため (FF Web 開発者)、これはブラウザーのキャッシュの問題ではないようです。問題は、バリデーターをページ内のどこに配置したかによっても異なります (これが奇妙なキャッシュの問題ではないことを再度確認します)。

最終的にバリデータータグ内のコンテンツで解決できました。

したがって、これは機能します:

<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

バリデータ コントロールにはTextErrorMessageプロパティがあり、通常の使用では Text が ErrorMessage を無効にし、タグ内のコンテンツは Text プロパティと同じです (Label.Text と同様)。

Text が指定されていない場合、または ValidationSummary が使用されている場合は、ErrorMessage が使用されます。

これが本当の問題を見つけるのに役立つことを願っています。

于 2013-03-22T15:44:01.900 に答える