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;