繁体   English   中英

asp mvc viewmodel验证属性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM