【发布时间】:2021-11-27 12:35:39
【问题描述】:
我有项目的课程
public class Project
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
然后,它使用下拉列表显示
@Html.DropDownListFor(model => model.Id,
new SelectList(Model.Projects, "Id", "Name", Model.Id),
"-- Select --",
new { @class = "form-control" })
如果我选择了一个项目,我可以得到Id和Name,但是如何得到描述呢?
<script>
$(function () {
$('#id').change(function () {
alert('id = ' + $('#Id').val() + ', name = ' + $('#Id :selected').text() + ', description = ' + ???);
});
});
</script>
【问题讨论】:
-
我还会在选择列表项上生成某种 -data-` 属性,因此在您设置
@class的位置以某种方式为-data-description创建一个新属性,然后将其拉出从那里在您的警报中。我认为DropDownListFor应该接受字典以及匿名对象类型。所以这样我想你可以传入data-description的名称,因为new { data-description = "" }is not valid c# -
我尝试使用data属性,比如
@Html.DropDownListFor(model => model.Id, new SelectList(Model.Projects, "Id", "Name", Model.Id), "-- Select --", new { @class = "form-control", @data_description = ? }),但是我不知道如何设置data_description,你能把示例代码发给我吗? -
对不起,我不能给出一个完整的答案,有一段时间没有使用 MVC。我想如果我没记错的话,你需要遍历
Model.Projects并创建new SelectListItem而不是使用new SelectList(方法。如果您可以遍历每个选择列表项,也许您可以正确设置描述。 -
哦,我明白了,感谢您的洞察力
标签: c# asp.net asp.net-mvc razor