我正在使用 MVC Foolproof Validation 库来提出相关要求:
public bool IsRequired { get; set; }
[RequiredIfTrue("IsRequired", ErrorMessage = "This field is required")]
public int RequiredIfTrueSelectID { get; set; }
这在客户端完美地工作,允许我提交没有RequiredIfTrueSelectID
值的表单(即值为 0),但[HttpPost]
返回ModelState.IsValid
false,并在即时窗口中显示以下结果:
myViewModel.IsRequired
true
ModelState["RequiredIfTrueSelectID"].Errors[0]
{System.Web.Mvc.ModelError}
ErrorMessage: "A value is required."
Exception: null
我确保我正在回发RequiredIfTrueSelectID 的值(如您在上面的第一个即时窗口查询中所见)。为什么我会收到“需要 A 值”消息,如何抑制此错误?
顺便说一句,我在 MVC5 中。也许ModelState
自 2 年前 Foolproof 的最后一次更新以来,实施已经改变了?有其他人知道最近发布的库,其功能类似于 Foolproof 吗?
控制器方法:
[HttpPost]
public virtual ActionResult ValidationTest(TestViewModel vm)
{ //breakpoint here to check ModelState.IsValid
return View(vm);
}