ASP.NET MVC 如何处理下拉列表的默认空值

问题描述 投票:0回答:1

我使用 ASP.NET MVC 助手创建一个下拉列表,如下所示,

<%=Html.DropDownList("Group","-please select a group-")%>

我得到的html是这样的,

<label for="GroupId">Group:</label>
<select id="GroupId" name="GroupId"><option value="">-please select a group-</option>
<option value="15">Business</option>
<option value="16">Friends</option>
<option value="17">Others</option>
</select>

默认选项为“-please selecta group-”,值为空。

如何验证选择值是否为空? 我的意思是,如果用户不选择一个组,我如何知道它并向用户提供错误消息。 现在,代码仅显示异常错误,因为默认选项的值为空。

asp.net-mvc drop-down-menu
1个回答
2
投票

Action 中的 Group 值将为 0。 您可以测试 Group 是否为零并调用

ModelState.AddModelError
。 如果可以在下拉列表中显式设置默认项的值,那就更好了,但这在
Html.DropDownList
中是不可能的。

无论如何我使用重载:

<%=Html.DropDownList("Group",Model.GroupList ,"-please select a group-")%>

这样,您在模型中就有了一个用于组列表的属性和一个用于所选组的键的属性。如果我用

<%=Html.DropDownList("Group",Model.GroupList ,"-please select a group-")%>

那么 ModelState.IsValid 对我来说总是错误的。

© www.soinside.com 2019 - 2024. All rights reserved.