【发布时间】:2011-08-18 22:35:49
【问题描述】:
我以前问过这个问题,但我决定更具体一些,所以也许有人可以帮忙。
我的问题是关于这个特殊问题:
在 ASP.NET MVC 应用程序中。我有一个复选框“Food/Bev”,它是一个布尔类型,我在表单上有一个“选择”列表,我想知道如何管理它:
如果复选框被选中:
下拉列表“餐饮服务商”成为必填字段。
除非 Caterer 选项为
,否则无法提交请求 从列表中选择。
如果复选框未选中:
- Caterer 下拉列表不是必填字段。
反之亦然。
- 如果两个字段都为空,则不需要这些字段。
在模型中我有这个代码:
if (string.IsNullOrEmpty(Caterer)
&& (FoodBeverage == true))
yield return new RuleViolation("Caterer", "Caterer is a required field");
在视图中我放了这段代码: 对于“选择”字段“Caterer”:
<label for="Caterer">Caterer</label>
<% if (Model.Request.Caterer == null && Model.Request.FoodBeverage !=null) %>
<select name="Caterer", "required">
<option>A</option>
<option>B</option>
<option>C</option>
对于“复选框”字段“食品/饮料”:
<% if (!Model.Request.FoodBeverage && Model.Request.Caterer == null) %>
<%= Html.CheckBox("FoodBeverage", Model.Request.FoodBeverage, new { @class = "required" })%>
<%= Html.ValidationMessage("FoodBeverage", "*")%>
问题是系统在两种情况下都将这些字段视为“必需”:如果它们都是“空”,或者如果它们中的一个被选中或选中。
看起来表单上的“if”条件不起作用。
【问题讨论】: