FileUpload与自定义验证器

时间:2012-11-25 21:43:30

标签: c# asp.net

由自定义验证程序验证的fileupload存在问题。文本框值始终为空或onververvalidate为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控件是否为空,稍后我将添加一些自定义验证。

1 个答案:

答案 0 :(得分:0)

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

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

这让我相信你的代码的其他部分会导致问题。我建议仅使用FileUploadCustomValidator创建一个辅助项目,并亲眼看看它是否有效。然后,尝试找出导致主项目出现问题的原因。如果您仍有问题,请提出另一个特定于您遇到的真正问题的问题。