为dropdownlistfor(MVC)中的每个元素设置唯一id
Setting unique id for each element in a dropdownlistfor (MVC)
我似乎不知道如何为SelectList
中的每个元素设置一个唯一的ID(使用@Html.DropDownListFor
)。视图中的div当前如下所示:
<div id="Courses">
@Html.DropDownListFor(c => c.Courses, new SelectList(Model.Courses, "CourseID", "Name"), "Choose Course", new { id = "courseDropDown", @class = "form-control input-sm", data_width = "100%" })
</div>
在浏览器中检查元素会发现每个元素都有courseID
作为值,我希望每个元素都将这个课程id作为唯一的id。仅供参考,Model.Courses
包含我所有课程的枚举值。
为了完整起见,我想要这样做的原因是,我在与下拉列表相对应的部分视图中有一个highChart,我的课程页面上有一个按钮,它重定向到带有部分div的视图,并加载给定课程的图表(使用课程页面中的ID)。这很好,但我现在只需要dropdownlist
在页面加载时显示该课程的名称,而现在它只是简单地说"选择网络钓鱼活动"
如有任何帮助或建议,我们将不胜感激。
edit:感谢您整理代码Rory
如果您需要设置select
的默认值,您应该在控制器中设置模型的某种CourseId
属性,然后在视图中设置:
@Html.DropDownListFor(c => c.CourseId, new SelectList(Model.Courses, "CourseID", "Name"), "Choose Course", new { id = "courseDropDown", @class = "form-control input-sm", data_width = "100%" })
DropDownListFor
帮助程序设置页面加载时选择的此值。
在填充Course属性的Model或控制器中,将CourseId设置为唯一数字。
这对你设置房产的方式真的很重要吗?
foreach(var course in DataSource.CourseTitles)
viewModel.Courses.Add(new Course(){ CourseId = i++, Name = course})
teo van kot的答案是正确的(+1)。
不过如果你不需要为帖子绑定CourseId的话。您可以使用SelectList
构造函数:-
public SelectList(
IEnumerable items,
string dataValueField,
string dataTextField,
Object selectedValue
)
就像这样:-
<div id="Courses">
@Html.DropDownListFor(c => c.Courses, new SelectList(Model.Courses, "CourseID", "Name", "COURSEID"), "Choose Course", new { id = "courseDropDown", @class = "form-control input-sm", data_width = "100%" })
</div>
相关文章:
- 使用 JavaScript 一次为一个元素设置多个属性
- 为dropdownlistfor(MVC)中的每个元素设置唯一id
- 无法为HTML5中具有画布和图像的可拖动元素设置“拖动图像”
- Jquery为每个元素设置属性
- 在JSON数组中进行迭代,并为其元素设置样式
- 将jquery ui窗口的父元素设置为另一个元素
- 如何使用随机css id为元素设置样式
- 如何为所有子元素设置填充
- Javascript:为元素设置适当的事件处理程序
- 为已设置动画的元素设置动画
- 将HTML元素设置为可滚动
- jQuery:从 JSON 对象为元素设置值
- 如何为 HTML 中的多个元素设置相同的 ID
- 为动态创建的元素设置属性
- 同时为一个 Li 元素设置类“活动”
- 如何使用 javascript 为元素设置内联 css 样式
- 如何为动态添加的 html 元素设置 setCustomValidity()
- 为包含 HTML 标记的字符串中的元素设置 Style 属性
- 获取两个元素的高度,将另一个元素设置为该高度
- 为表单元素设置 Cookie