我的MVC应用程序使用经典的编辑操作。 我有模特:
public class Case
{
[RequiredEx]
public string Id { get; set; }
public string TicketNumber { get; set; }
[RequiredEx]
public Account Customer { get; set; }
}
其中RequiredEx是自定义验证属性
public class RequiredExAttribute : RequiredAttribute
{
public bool IsRequired { get; set; }
public override bool IsValid(object value)
{
switch (value)
{
case null: return false;
//here goes some validation logic
default: return base.IsValid(value);
}
}
public override bool RequiresValidationContext
{
get
{
return IsRequired;
}
}
}
子Account
类没有任何Required
或RequiredEx
属性时,一切正常,但是如果我将该属性添加到其中一个字段中,它将停止验证{{1} }
属性本身,而不是验证Customer
,Customer.Id
等。
在编辑表单中,我仅分配Customer.Name
属性,对我来说足够了。我可以过滤掉不必要的ModelState错误,但是可以强制进行Customer.Id
属性验证,直到我从子类中删除了所有必需的属性,MVC还是看不到这一切。
这个问题的解决方法是什么?