如何在不使用MVC库的情况下验证包含DataAnnotations的实体?当您处于表示层中时,使用Model.IsValid可以,但是如果您希望确保该模型在域/业务层中有效,那该怎么办?我需要一个单独的验证框架,还是有一个简单的方法,我错过了?带有服务器端验证的MVC2数据注释
感谢您的帮助,
马克
如何在不使用MVC库的情况下验证包含DataAnnotations的实体?当您处于表示层中时,使用Model.IsValid可以,但是如果您希望确保该模型在域/业务层中有效,那该怎么办?我需要一个单独的验证框架,还是有一个简单的方法,我错过了?带有服务器端验证的MVC2数据注释
感谢您的帮助,
马克
我用普通的C#写我的验证逻辑,我的业务层包含了这些验证,我在整个业务层使用try和catch块。表示层捕获这些自定义异常,以便在用户屏幕上显示错误。我只在数据注释中保留基本验证,例如[Required]主要用于ajax调用,并通知用户在非空字段中输入数据,这样我的业务逻辑保留在我的中间层,它保持一致,它只保留在我可以参考的一个地方。
我想你是指Model.IsValid的ModelState.IsValid,对不对?那么,DataAnnotions根本不依赖于MVC,因此您可以始终使用IValidatableObject界面。
或者也许Validator class会更合适,通过使用Validator.ValidateObject(object, ValidationContext)。