我将 Asp.Net MVC 2 与 Entity Framework 4 一起使用。
这是情况:我有一个复选框和一个文本框(日期选择器)。
如果复选框被选中,则文本框是必需的。如果复选框为 false,则不需要文本框。
复选框 True => 需要文本框
复选框 False => 不需要文本框
<%:Html.CheckBoxFor(model => model.oEnvironment.Remediate) %>
<%= Html.TextBoxFor(model => model.oEnvironment.DatePick)%>
我知道如何创建一个 ValidationAttribute 但我不知道如何创建一个验证类来验证是否选中了复选框(如果我的实体修复属性为真),然后根据需要放置 DatePick 字段。
任何的想法 ?
最佳答案
如果你不需要客户端验证,我建议你使用 ModeState.AddModelError
测试您的逻辑(在您的 Controller 中)。
就像是:
[HttpPost]
public ActionResult Edit(MyModel model)
{
if (model.Remediate && string.IsNullOrEmpty(model.DatePick))
ModelState.AddModelError("DatePickRequired", "DatePick is required");
if (!ModelState.IsValid)
return View(model);
return View();
}
格茨,
斯蒂芬。
关于asp.net-mvc-2 - 基于两个属性的自定义模型验证。一个影响另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5320357/