我有以下代码,旨在用一堆整数值填充下拉列表,并使当前选定的值(在本例中为 13)成为选定的项目。
我使用了相同的技术,但用于字符串值并且效果很好,每次我进入 View 时都会记住当前值是什么。
在 Controller 中:
var x = new[] { 1, 2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
ViewData["Field"] = new SelectList(x, 13);
在 View 中:
<%=Html.DropDownList("Field", (IEnumerable<SelectListItem>)ViewData["Field"])%>
当我调试并观察 ViewData["Field"] 对象时,它的 selectedValue 确实为 13,因此它必须到达 View 但在那里被忽略,因为我在页面上看到的只是一个值为 1 的下拉列表到 15,但显示 1(未选择所以显示第一个)
这是一个错误还是我在做一些非常愚蠢的事情?
谢谢
格雷姆
最佳答案
我似乎记得它实际上并没有使用 SelectList 元素的 Selected 属性。我通常将一个 ViewData 项作为选择列表,另一个作为选定值。
Controller :
var x = new[] { 1, 2,3,4,5,6,7,8,9,10,11,12,13,14,15 };
ViewData["Fields"] = new SelectList(x);
ViewData["Field"] = 13;
查看
<%= Html.DropDownList("Field", (IEnumerable<SelectListItem>)ViewData["Fields"] ) %>
关于c# - SelectedItem 在 ASPNET.MVC 的 SelectList 中没有被记住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1207053/