DropDownListFor在用户未选择任何值时抛出异常

时间:2012-08-08 16:28:11

标签: asp.net-mvc razor

当用户提交表单而未在dropdownlistfor中选择任何值时,我收到异常,如下所示:

    <div class="editor-field">
        @Html.DropDownListFor(
            x => x.TypeID,
            new SelectList(ViewBag.EventType, "ID", "Name"),
            "-- Select Event Type --"
            )
        @Html.ValidationMessageFor(model => model.TypeID)
    </div>

我有一个例外:

  

值不能为空。参数名称:items

我想我必须检查用户是否选择了某个值或发出警报,但我不确定如何制作它。

1 个答案:

答案 0 :(得分:2)

如果要在下拉列表(TypeID)中处理未选择的案例,则应在视图模型上为"-- Select Event Type --"属性使用可为空的类型:

public int? TypeID { get; set; }

您将收到异常,因为如果用户未在下拉列表中选择任何选项,则使用默认选项:

<option value="">"-- Select Event Type --"</option>

注意该值是如何为空字符串。这显然不能绑定到模型上的非可空整数类型。