2012-08-08 52 views
0

我得到了一个异常,当用户提交一个表单而没有为dropdownlistfor选择任意值,如下所示: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> 

我有一个例外:

值不能为空。参数名称:项目

我想我必须检查用户是否选择了一个值或做出警告,但我不知道如何做到这一点。

public int? TypeID { get; set; } 

你所得到的异常,因为:

回答

2

你应该,如果你想处理您的下拉列表中未选择的情况下("-- Select Event Type --")在您的视图模型中使用可空类型的TypeID财产如果用户不选择下拉任何选项,默认的使用:

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

注意什么样的值是空字符串。这显然不能绑定到模型上的不可为空的整数类型。

+0

真棒,非常感谢。 – San 2012-08-08 17:04:12