MVC ModelState异常行为

时间:2018-10-02 18:40:07

标签: validation model-view-controller attributes required modelstate

我的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类没有任何RequiredRequiredEx属性时,一切正常,但是如果我将该属性添加到其中一个字段中,它将停止验证{{1} } 属性本身,而不是验证CustomerCustomer.Id等。 在编辑表单中,我仅分配Customer.Name属性,对我来说足够了。我可以过滤掉不必要的ModelState错误,但是可以强制进行Customer.Id属性验证,直到我从子类中删除了所有必需的属性,MVC还是看不到这一切。 这个问题的解决方法是什么?

0 个答案:

没有答案