C# 显示文件上载错误的更好方法?

C# 显示文件上载错误的更好方法?,c#,asp.net-mvc,C#,Asp.net Mvc,型号: public class EmailAttachment { public string FileName { get; set; } public string FileType { get; set; } public int FileSize { get; set; } public Stream FileData { get; set; } } public class ContactEmail: IDataError

型号:

public class EmailAttachment  
{  
    public string FileName { get; set; }  
    public string FileType { get; set; }  
    public int FileSize { get; set; }  
    public Stream FileData { get; set; }  
}  

public class ContactEmail: IDataErrorInfo  
{  
    public string Name { get; set; }  
    public string Email { get; set; }  
    public string Message { get; set; }  
    public EmailAttachment Attachment { get; set; }  

    public string Error { get { return null; } }  

    public string this[string propName]  
    {
        get  
        {  
            if (propName == "Name" && String.IsNullOrEmpty(Name))  
                return "Please Enter your Name";  
            if (propName == "Email"){  
                if(String.IsNullOrEmpty(Email))  
                    return "Please Provide an Email Address";  
                else if(!Regex.IsMatch(Email, ".+\\@.+\\..+"))  
                    return "Please Enter a valid email Address";  
            }  

            if (propName == "Message" && String.IsNullOrEmpty(Message))  
                return "Please Enter your Message";  
            return null;  
        }  
    }
}    
和我的控制器文件

[AcceptVerbs(HttpVerbs.Post)]  
public ActionResult Con(ContactEmail ce, HttpPostedFileBase file)  
{  
    return View();  
}  
现在问题来了
从表格中我得到姓名、电子邮件、信息和上传的文件。我可以使用公共字符串this[string propName]自动获取姓名、电子邮件和消息的验证错误。如果Attachment.FileSize>10000,如何显示验证错误?如果我用
公共字符串此[string propName]

我一直在得到空附件。如何填写ContactEmail的附件对象,以便管理同一位置的所有错误?

您可以通过调用UploadFiles(表单“folderForFiles”)进行上传

将hpf.ContentLength添加到变量中并在其大小上运行if是很容易的 然后有

ModelState.AddModelError("","File is too large to be uploaded");
return;
由于modelstate仍然有效,这将显示在错误摘要上 只需修改示例代码以添加您自己的限制和检查


键入hpf.应该也会给您提供所有可用于扩展的扩展等

我是否可以补充一点,使用asp.net MVC元数据和dataAnnotation似乎更整洁[必需(ErrorMessage=“需要设计编号”)、DisplayName(“设计编号”)]public Int32 designNum{get;set;}
ModelState.AddModelError("","File is too large to be uploaded");
return;