[英]asp mvc viewmodel validation attribute
我正在使用一个ViewModel进行两项操作:创建和更新。 但是场
CommonFile
(带有必需属性)位于“创建”视图中。 因此更新操作中ModelState.IsValid为false。 如何在这两个视图中使用一个模型视图?
public class UnitViewModel
{
public int Id { get; set; }
[Required(ErrorMessage = "Required field")]
[StringLength(256, ErrorMessage = "SomeMessage")]
public string Title { get; set; }
public string Code { get; set; }
[Required(ErrorMessage = "Required field")]
[DateAttribute(ErrorMessage = "Incorrect date format")]
public string MapDeadline { get; set; }
public int InAllCount { get; set; }
public int LoadedCount { get; set; }
[Required(ErrorMessage = "Required field")]
[FileAttribute(AllowedFileExtensions = new string [] { ".xls", ".xlsx" })]
public HttpPostedFileBase CommonFile { get; set; }
}
拥有一个继承UnitViewModel的CreateViewModel
public class CreateViewModel : UnitViewModel
{
[Required(ErrorMessage = "Required field")]
[FileAttribute(AllowedFileExtensions = new string [] { ".xls", ".xlsx" })]
public HttpPostedFileBase CommonFile { get; set; }
}
这是一个OO问题。 创建一个BaseUnitViewModel,它包含除CommonFile之外的所有内容,然后使用CommonFile从中派生出需要它的方法。
虽然Bigfellahull的解决方案是一个更好的方法,但在更新操作中你可以检查ModelError然后如果错误与字段CommonFile有关,那就忽略它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.