这个问题可能听起来重复,但我对任何答案都不满意,因为有些人建议MVC Foolproof validaiton
有条件的验证,有些人告诉它不适用于实体框架
我在我的项目中使用MVC Foolproof RequiredIf validation
。它在客户端运行良好,验证也在服务器端工作。
[RequiredIf("STCompulsory",Operator.EqualTo,true,ErrorMessage="Please enter Registration No")]
public string STRegNo { get; set; }
但是当我呼叫db.Savechanges()
插入数据时,异常即将来临
An unexpected exception was thrown during validation of 'STRegNo' when invoking
Foolproof.RequiredIfAttribute.IsValid. See the inner exception for details.
的InnerException
The method or operation is not implemented.
答案 0 :(得分:1)
您不需要Operator.EqualTo
参数,只需
[RequiredIf("STCompulsory", true, ErrorMessage="Please enter Registration No")
public string STRegNo { get; set; }
你是对的,因为万无一失的[RequiredIf]
属性确实存在一些EF问题,我们会在this work issue中详细讨论(以及一些建议的更改)。
最简单的解决方案是在视图中使用视图模型而不是数据模型,并将该属性应用于视图模型属性。