DropdownListFor不选择(谁猜了?)
|
我有一个下拉列表,不会正确显示所选值。它确实具有正确的元素,具有正确的文本和值,但是似乎没有办法使它实际上选择正确的值。
我所拥有的是:
public class StateViewModel {
public string Name { get; set; }
public string Abbr { get; set; }
}
public class ChangeAddressViewModel {
//edited down to what\'s needed
public StateViewModel StateViewModel { get; set; }
public IEnumerable<StateViewModel> StateViewModels { get; set; }
}
我尝试过的
@Html.DropDownListFor(model => model.StateViewModel
, Model.StateViewModels.Select(x => new SelectListItem {
Text = x.Name,
Value = x.Abbr,
Selected = x.Abbr == Model.StateViewModel.Abbr
})
, @Resource.SelectState)
//i\'ve stepped through the lambda above and the expression
//x.Abbr == Model.StateViewModel.Abbr
//did evaluate to true for one of the iterations
@Html.DropDownListFor(model => model.StateViewModel
, new SelectList(Model.StateViewModels
, \"Abbr\"
, \"Name\"
, Model.StateViewModel.Abbr)
, @Resource.SelectState)
没有找到相关结果
已邀请:
1 个回复
绊伦欧
这将呈现列表的新实例,而不是您传入的实例!因此,您将没有选定的值。 尝试将其设置为:
然后在您的Controller / ViewModel中,如下所示填充SelectList。我编写了自己的示例,因为它很容易。以下是ActionResult中Controller的代码:
您的ViewModel看起来像这样:
我假设这是您的问题,并且您实际上不想拥有一个新列表,并且还选择了该列表中的一个值作为默认值。 如果是这种情况,请尝试以下操作:
我认为您的右括号位置错误!