DropDownList为列表中的第一选择不显示/保持空值

时间:2011-05-13 00:29:53

标签: asp.net-mvc null drop-down-menu sharp-architecture

我有一个通过SharpArch的MVC应用程序。在视图中我有:

 Html.DropDownListFor(x => x.Location, 
     new SelectList(Model.PossibleLocations, "Id", "Address"), 
     "-- No Location --")

我有2个问题。

  1. 当视图绑定到模型时,Dropdown不会更新。
  2. 除非我尝试顶部的“无位置”,否则选择会被正确保留。
  3. 我能够通过将x.Location更改为x.Location.Id来处理第一点,但后来我遇到了其他问题。

    我可以找到大量的DropDownList示例,但没有显示保存null的示例。

    感谢任何帮助。

    由于

    更新:

    我刚刚升级了Resharper(一个小的更新),我被提示填充它DropDownListFor。为什么会有所作为?它的工作足以绑定,现在根本不起作用。

2 个答案:

答案 0 :(得分:1)

尝试“展平”您的模型类,以便LocationId是您要绑定的实际值(即向模型添加“LocationId”属性,并为x => x.LocationId创建DropDownList)。

答案 1 :(得分:1)

您可以随时将“空”SelectListItem插入PossibleLocations集合,然后传递给View并检查表单为“空”值(例如0)贴

model.PossibleLocations.Insert(0, 
    new SelectListItem() { Text = "-- No Location --", Value = "0" };