【发布时间】:2013-12-26 17:15:31
【问题描述】:
我做了测试属性
[AttributeUsageAttribute(AttributeTargets.Property | AttributeTargets.Field, Inherited = false)]
public class NonInheritedRequiredAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value == null)
return new ValidationResult((validationContext.DisplayName));
return null;
}
}
和视图模型
public class ViewModelA
{
[NonInheritedRequired]
public virtual string Property{ get; set; }
}
public class ViewModelB : ViewModelA
{
public override string Property{ get; set; }
}
动作方法
[HttpPost]
public ActionResult Index(ViewModelB viewModel)
{
if (ModelState.IsValid)
{
return View("OtherView");
}
return View(viewModel);
}
ModelState 始终无效。在验证时,它使用 NonInheritedRequired 的验证,尽管它具有 Inherited = false。 我该如何解决这个问题?
谢谢。
【问题讨论】:
标签: c# asp.net-mvc custom-attributes asp.net-mvc-viewmodel