1

由自定义验证器验证的文件上传存在问题。文本框值始终为空或 null onververvalidate。

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

我检查了你的代码,它工作得很好。
添加文件时,我得到了hasFilefileName

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

这让我相信你的代码中有其他部分导致了问题。我建议创建一个只有 theFileUpload和 the的副项目,CustomValidator并亲自看看它是否有效。然后,尝试找出导致主项目出现问题的原因。如果您仍然有问题,请提出另一个特定于您遇到的实际问题的问题。

于 2012-11-26T07:41:31.430 回答