我的标记中有一个DropDownListFor:
@Html.DropDownListFor(
m => m.MyDictionary[DictionaryKey],
Model.MySelectList as SelectList);
我的词典是我视图模型中的一个属性:
public Dictionary<KeyTypes, string> MyDictionary { get; set; }
MySelectList
是一个值列表,1到5。
在我的控制器中,在我返回视图之前,我设置了字典值:
_MyViewModel.MyDictionary[DictionaryKey] = "3"
当页面加载时,所选的值为&#34; 1&#34;而不是&#34; 3&#34;。 但是,如果我将字典更改为视图模型中的string
和标记,则下拉列表中有&#34; 3&#34;在页面加载时选择。
如何将下拉列表绑定到字典值而不是字符串?
更新
我用自己的动态填充模型制作了局部视图。我的模型包含以下属性:
public string SelectedValue { get; set; }
public MyEnum EnumValue { get; set; }
public SelectList ValueRange { get; set; }
我的部分视图输入到此模型,并包含DropDownListFor:
@Html.DropDownListFor(
m => m.SelectedValue ,
Model.ValueRange as SelectList)
这似乎适用于我需要的东西。来自webforms,我不习惯那么多分手,但这开始变得更有意义了。希望这有助于其他人:)。