ASP.MVC DropDownListFor默认值

时间:2011-02-22 10:29:44

标签: c# asp.net asp.net-mvc drop-down-menu

我正在尝试在我的视图中生成下拉列表,如下所示,但我希望我的选项标签("Please select...")的值为-1,因为空白已被另一个选项占用。反正有没有将它添加到我的控制器或视图模型中的选择列表中,或者创建一个新的html帮助器?

<%: Html.DropDownListFor(model => model.stuff.Id, new SelectList(Model.stuff, "Id", "Name"), "Please select...")%>

由于

2 个答案:

答案 0 :(得分:9)

  

我希望我的选项标签(“请选择...”)的值为-1

使用DropDownListFor帮助程序无法开箱即用。对于此值,它将始终使用空白。你有两种可能性:

  1. 撰写自定义助手
  2. 手动将其添加到集合
  3. 实际上你有第三种可能性,恕我直言是最好的,我建议你:

    不要将空白用作值。这应该保留给请选择默认值。使用blank作为用户实际可以选择的值的值似乎不合逻辑。您可能还会遇到验证问题。

答案 1 :(得分:1)

从数据库中获取值后,只需使用Concat方法将新项添加到SelectList。然后将值设置为0并将文本设置为&#34;请选择&#34;。

 var selectList = new SelectList(types.Concat( new[]{new MediaType() {MediaTypeId = 0, Type = "Please select"}})
            , "mediatypeid", "type");