Я использую библиотеку MVC Защищенное Validation сделать зависимые требования:MVC Защищенное Validation RequiredIfFalse неправильно
public bool IsRequired { get; set; }
[RequiredIfTrue("IsRequired", ErrorMessage = "This field is required")]
public int RequiredIfTrueSelectID { get; set; }
Это отлично работает на стороне клиента, что позволяет мне представить форму без значения RequiredIfTrueSelectID
(т.е. значение 0), а на [HttpPost]
в ModelState.IsValid
возвращает ложь, и следующий результат в окне Immediate:
myViewModel.IsRequired
true
ModelState["RequiredIfTrueSelectID"].Errors[0]
{System.Web.Mvc.ModelError}
ErrorMessage: "A value is required."
Exception: null
Я гарантируя, что я отправляю обратно значение RequiredIfTrueSele ctID (как вы можете видеть в первом запросе непосредственного окна выше). Почему я получаю сообщение «Значение требуется», и как я могу подавить эту ошибку?
Кстати, я в MVC5. Возможно, реализация ModelState
изменилась с момента последнего обновления Foolproof 2 года назад? Кто-нибудь еще знает о недавно опубликованной библиотеке, которая функционирует как Foolproof?
метод управления:
[HttpPost]
public virtual ActionResult ValidationTest(TestViewModel vm)
{ //breakpoint here to check ModelState.IsValid
return View(vm);
}
Вы вручную изменяете значение AllowAnyPlan от фактического опубликованного значения? –
@ ErikFunkenbusch no. Я устанавливаю точку останова в открывающей скобке моего метода контроллера – DLeh
@ErikFunkenbusch Я даже пытался изменить 'AllowAnyPlan' на то, чтобы читать только как« истинный », и все равно это происходит – DLeh