1

カスタムバリデーターによって検証されているファイルのアップロードに問題があります。テキスト ボックスの値は、ververvalidate では常に空または null です。

ASPX

<asp:CustomValidator ID="cvFileUpload" runat="server" 
                ErrorMessage="Please select file!" ControlToValidate="fuCheatingEvidence" 
                onservervalidate="cvFileUpload_ServerValidate" 
                ValidationGroup="vgSubmitForm" ValidateEmptyText="True"></asp:CustomValidator>
            <asp:FileUpload ID="fuCheatingEvidence" runat="server" 
                 Width="890px" Size="50" />

コードビハインド

protected void cvFileUpload_ServerValidate(object source, ServerValidateEventArgs args)
{
    String fileName = fuCheatingEvidence.PostedFile.FileName;

    if (fileName != "")
    {
        args.IsValid = true;

    }
    else
    {
        args.IsValid = false;
    }

}

FileUpload コントロールが空かどうかを確認するだけの簡単なチェックであり、後でカスタム検証を追加します。

4

1 に答える 1

0

コードを確認しましたが、問題なく動作します。
ファイルを追加すると、hasFileと の両方が取得されますfileName

protected void cvFileUpload_ServerValidate(object source, ServerValidateEventArgs args)
{
    bool hasFile = fuCheatingEvidence.HasFile; // Returns true
    String fileName = fuCheatingEvidence.PostedFile.FileName; // Returns the filename
     .....
}

これにより、問題を引き起こしているコードの他の部分があると私は信じています。FileUploadと のみを使用してサイド プロジェクトを作成し、CustomValidatorそれが機能することを自分で確認することをお勧めします。次に、メイン プロジェクトの問題の原因を突き止めます。それでも問題が解決しない場合は、実際の問題に固有の別の質問をしてください。

于 2012-11-26T07:41:31.430 に答える