2015-04-07 103 views
0

我知道这里有一些类似的问题,但没有解决方案帮助我这个。这是我的情况:下拉选择的项目没有被选择

我在我的模型中有一个列表。

public List<SelectListItem> Layouts { get; set; } 

我的 “装载” 方法之后,结果如下:

enter image description here

然后在我的视图我用这个过载:

@Html.DropDownListFor(x => x.Layout, Model.Layouts, "Select a Layout", 
    new { @id = "ddLayouts", @onchange = "javascript:getExampleAddresses(this.value);" }) 

步进上确切的行与debbuger,我得到以下结果: enter image description here

到目前为止一切看起来不错,但是当我踩下一行时,选定的值得到Selected = false,我的值没有被选中。有人知道为什么会发生这种情况?

回答

3

您强烈绑定到属性LayoutLayout的值决定选择什么,而不是(忽略)的Selected属性。

在控制器设置的Layout值相匹配的选项之一的值和选项将在视图

+0

谢谢你来选择!我现在明白了,但问题在于布局值不一定等于下拉列表中的某个选项。我的意思是,如果在创建时选择了下拉列表的“自定义”值,则会为该布局属性显示一个字段,否则,下拉列表的值将被绑定到该布局属性。我希望你明白我的意思。 – vortex

+0

对不起,不知道你的意思。如果'Layout'的值不匹配其中一个选项,那么将会选择第一个选项(在您的情况下为'null'“Select a Layout”选项。这就是模型绑定的工作方式 - 它绑定到您的属性。 –

+0

问题是,我想绑定两个输入相同的属性 - 布局。第一个是这个下拉,第二个隐藏的输入,当用户从下拉列表中选择一个给定的选项时弹出。我想我有重新考虑我的设计 – vortex