【发布时间】:2013-08-16 07:46:07
【问题描述】:
我正在通过模型将对象列表传递给我的视图
@model MyModel.ObjectViewModel
我是 MVC 新手,正在尝试在我的视图中设置 dropdownlist 的初始选定项(在编辑后建模)。
然后我将它绑定到一个下拉列表,如下所示
<label for="ddlObjects">Select Object</label>
@Html.DropDownList("ddlObjects", Model.AllObjectsSelectList, Model.Object.ObjectName)
上面确实使下拉列表最初选择了正确的对象,但我发现它只是文本形式。未选择真实对象,因此未使用该值。我怎样才能有一个项目列表,比如"Object1" "Object2" 等,并且默认是一个特定的?
当我通过项目时,我只知道项目的文本值(出现在下拉列表中的名称),我不知道它的内部值所以我不能真正使用SelectListItem {Text = "X", Value= "Y"}
我在这里和通过谷歌搜索过,有设置初始选择值的选项,但是他们使用像 @Html.DropDownList 这样的方法,似乎不允许我指定控件名称,在我的控制器中我具体引用控件的名称。
【问题讨论】:
-
这种工作方式是说它应该将默认值设置为 X,但是当我实际运行应用程序并转到页面时,它似乎并没有改变它。 (第二个链接)。
-
为什么不使用 Viewbag 或 ViewData 来携带您选择的 id(value) 来查看并将该值分配给下拉选择的值重载,所以您选择的 id(value) 可能是动态的。
-
因为我没有ID,所以我只有文本值。我正在处理从 SQL 获得的数据,而不是存储 ID 并使用 Joins 来规范化表,它只是传递对象的字符串名称。
-
尝试将您的 TextField 和 Valuefield 都作为名称传递 像这样 SelectListItem {Text = "X", Value= "X"} 。
标签: c# asp.net-mvc razor drop-down-menu