使用 ViewModel 时的 asp.net mvc IDataErrorInfo 验证
我已对我的模型使用了 IDataErrorInfo 验证。 但是当我在视图模型中使用这些模型类时,验证不会发生。
下面的示例视图模型
public class CategoryViewModel
{
// Category class with IDataErrorInfo
public Category category { set; get; }
// Subcategory class with IDataErrorInfo
public IList<SubCategory> subcategory { set; get; }
}
现在,如果直接使用类别或子类别类作为视图模型,则验证工作正常。但是,如果使用 CategoryViewModel,则不会进行验证。
I have used IDataErrorInfo Validation for my Model.
But when I use these model classes inside a view model, the validation does not happen.
sample viewmodel below
public class CategoryViewModel
{
// Category class with IDataErrorInfo
public Category category { set; get; }
// Subcategory class with IDataErrorInfo
public IList<SubCategory> subcategory { set; get; }
}
Now, if Category or Subcategory classes are directly used as models for view, the validation works fine. But, if CategoryViewModel is used, no validation occurs.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
IDataErrorInfo
不会不使用子属性。您需要通过绑定到的视图模型 (CategoryViewModel
) 来实现此接口。它也是 被认为是不好的做法。作为替代方案,您可以查看 DataAnnotations 或 FluentValidation 用于更高级的验证场景。IDataErrorInfo
doesn't work with child properties. You will need to implement this interface by the view model you are binding to (CategoryViewModel
). It is also considered as bad practice. As an alternative you might look at DataAnnotations or FluentValidation for more advanced validation scenarios.