将dataannotations从model传递到viewmodel

时间:2016-07-29 13:16:13

标签: asp.net-mvc

在我的mvc app中,我有一个模型和一个相关的viewmodel。当我绑定到模型时,displayfor / editorfor方法会选择displayname数据注释,并且客户端验证也会自动生效。

当我将视图绑定到我的viewmodel时,将忽略数据注释。我意识到我可以在我的viewmodel上放置验证/显示名称注释,但不希望重复或将它们移动到viewmodel中。人们如何处理这个问题?

到目前为止我已经

[MetadataType(typeof(HeritageMetadata))]
    public partial class Heritage {
        }

        public class HeritageMetadata{
            [Display(Name = "Listing Status")] 
            public int ListingStatus;
            [Display(Name = "Existing Structure Age")]
            public int ExistingStructureAge;
            [Display(Name = "Conservation Management Plan?")]
            public int ConservationManagementPlan;
        }

    public class HeritageViewModel {
        public int StructuresId { get; set; }
        public int ListingStatus { get; set; }
        public int ExistingStructureAge { get; set; }
        public bool ConservationManagementPlan { get; set; }
        public IEnumerable<SelectListItem> ListingStatusTypes { get; set; }
        public IEnumerable<SelectListItem> ExistingStructureAgeTypes { get; set; }
    }

0 个答案:

没有答案