c# - SelectedItem 在 ASPNET.MVC 的 SelectList 中没有被记住

标签 c# asp.net-mvc model-view-controller c#-3.0 selectlist

我有以下代码,旨在用一堆整数值填充下拉列表,并使当前选定的值(在本例中为 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/

相关文章:

c# - 批量请求 - SendAs 电子邮件

c# - 系统.MissingMethodException : Method not found: 'System.String .get_DayName()'

macos - 有关Cocoa应用程序的MVC设计架构的问题

c++ - Qt:识别 QTreeView 的项目

C# 反射 StackTrace 获取值

c# - 在哪里可以找到 C# 5 语言规范?

c# - 使用正则表达式在 C# 中验证 FQDN

asp.net-mvc - 创建值从 0 到 10 的 asp.net mvc 下拉列表的最简单方法?

html - 如何从mvc中的另一个目录打开html文件

html - 使用 IHtmlContent 和 IHtmlHelper 编写类