我在我的Web应用程序中使用EF4和ASP.NET MVC 2。我也在使用数据注释进行验证。
以下可能吗?如果是这样,我将如何实现它?我有一个复选框,以及来自和迄今为止。起始日期不是必填字段,但勾选复选框后,起始日期和起始日期都是必填字段。然后必须显示所需的错误。
这怎么可能?
感谢。
答案 0 :(得分:1)
您需要为模型类本身创建一个验证三个字段的验证属性。
例如,查看默认MVC项目模板中的[FieldsMustMatch]
属性。
答案 1 :(得分:1)
这与今天早些时候提出的问题非常相似。由于无法访问父类的其他属性值,因此无法使用开箱即用类的DataAnnotations创建属性级自定义属性,但可以通过稍微扩展框架来完成。 See here for more detail and related link
答案 2 :(得分:1)
嗯,在物业层面,在MVC中难以实现偶然验证。但你可以扩展框架,或者你可以使用其他一些库来实现目标。我成功地使用nick的万无一失的验证来进行项目中的偶然验证。你可以看看here
答案 3 :(得分:0)
在您检查ModelState
的控制器中,您可以在致电View()
之前检查复选框是否已选中
[HttpPost]
public ActionResult Index(LoanData myObject) {
//Your custom implementation
if (!checkBox.Checked) {
return View();
}
//Normal validation
if (ModelState.IsValid) {
return View("Index", myObject);
} else {
return View();
}
}
这样,您可以根据是否选中复选框来控制何时进行验证。