1

我有一个通过 SharpArch 的 MVC 应用程序。在我看来:

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

我有2个问题。

  1. 当视图绑定到模型时,下拉菜单不会更新。
  2. 除非我尝试顶部的“无位置”,否则选择会正确保留。

我可以通过将 x.Location 更改为 x.Location.Id 来处理第一点,但后来我遇到了其他问题。

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

任何帮助表示赞赏。

谢谢

更新:

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

4

2 回答 2

1

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

于 2011-05-13T00:44:12.670 回答
1

您总是可以在传递给您的集合之前将“空”SelectListItem插入到您的集合中,并在发布表单时检查该“空”值(例如 0)PossibleLocationsView

model.PossibleLocations.Insert(0, 
    new SelectListItem() { Text = "-- No Location --", Value = "0" };
于 2011-05-13T01:00:30.230 回答