我试图改变现有项目中的代码,使DropDownListFor选择一个项目。我读了无数的线程,但我没有得到一个特定的项目被选中;DropDownListFor使用ViewData
这就是我得到的;
控制器;
ViewData("MyDropDownList") = new SelectList(_myRepository.GetData, "data_id", "name"})
查看;
@Html.DropDownListFor(Function(m) m.data_id, TryCast(ViewData("MyDropDownList"), SelectList))
而这产生了一个很好的列表,看起来像这样;
<select id="someId" name="someName" data-val="true">
<option value="aec385a7-bd77-4b94-9fbb-130487e3e62e">Option1</option>
<option value="5edee514-e6ca-456f-a8fa-71bde67351a1">Option2</option>
<option value="8a293328-8b11-47b7-bc9a-ceddf2e6a355">Option3</option>
</select>
在阅读完毕后,我很肯定这会使选择“Option2”
ViewData("MyDropDownList") = new SelectList(_myRepository.GetData, "data_id", "name", "5edee514-e6ca-456f-a8fa-71bde67351a1"})
但它没有,我也试过这个;
ViewData("MyDropDownList") = new SelectList(_myRepository.GetData, "data_id", "name", New With {Key .id = "5edee514-e6ca-456f-a8fa-71bde67351a1"} })
我在做什么错? VB不是我的一杯茶,所以它可能只是一个语法错误。任何输入赞赏。
嗨!并感谢您的答复。我试图在视图和控制器中将MyDropDownList重命名为TADAAAA,但没有任何运气。我做对了吗? – Tim
请将您的代码更改为以下新的SelectList(_myRepository.GetData,“data_id”,“name”,new {data_id = 5edee514-e6ca-456f-a8fa-71bde67351a1}); –
啊,看起来合乎逻辑,你现在写在VB中吗? – Tim