MVC 下拉列表 - 从项目绑定多个 属性
MVC dropdownlist - bind multiple property from items
我有学院collection。它包含 ID、描述、名称、年龄等属性。选择后我可以获得ID和描述。但是如何根据选择获取其他属性(例如名称)。在这里,我还需要“姓名”属性。
我在 javascript 中编写了以下 onchange 函数。我必须获得“名称”属性 值。我不想再次调用服务器逻辑 -
$("#InstituteID").change(function() {
// Need some logic to get Name value
});
下拉列表代码-
@Html.DropDownList("InstituteID",
new SelectList(
ViewBag.Institutes,
"ID",
"Description"
),
"-- Institute Type --", new { @class = "form-control" })
您可以使用 select 标签选项的数据属性 属性。
您必须像这样修改 HTML 标记:
@{
var Institutes = new List<Institutes>() {
new Institutes(){ ID=1,Description="test1",Name="name1",age=20 },
new Institutes(){ ID=2,Description="test2",Name="name2",age=21 },
new Institutes(){ ID=3,Description="test3",Name="name3",age=22 }
};
}
<select name="InstituteID" id="InstituteID">
@foreach (var item in Institutes)
{
<option data-name="@item.Name" data-age="@item.age" value="@item.ID">@item.Description</option>
}
</select>
Javascript 看起来像:
<script>
$(document).ready(function () {
$("#InstituteID").change(function () {
var element = $(this).find('option:selected');
var name = element.attr("data-name");
var name = element.attr("data-age");
console.log("selected name is:"+ name);
});
})
我有学院collection。它包含 ID、描述、名称、年龄等属性。选择后我可以获得ID和描述。但是如何根据选择获取其他属性(例如名称)。在这里,我还需要“姓名”属性。
我在 javascript 中编写了以下 onchange 函数。我必须获得“名称”属性 值。我不想再次调用服务器逻辑 -
$("#InstituteID").change(function() {
// Need some logic to get Name value
});
下拉列表代码-
@Html.DropDownList("InstituteID",
new SelectList(
ViewBag.Institutes,
"ID",
"Description"
),
"-- Institute Type --", new { @class = "form-control" })
您可以使用 select 标签选项的数据属性 属性。
您必须像这样修改 HTML 标记:
@{
var Institutes = new List<Institutes>() {
new Institutes(){ ID=1,Description="test1",Name="name1",age=20 },
new Institutes(){ ID=2,Description="test2",Name="name2",age=21 },
new Institutes(){ ID=3,Description="test3",Name="name3",age=22 }
};
}
<select name="InstituteID" id="InstituteID">
@foreach (var item in Institutes)
{
<option data-name="@item.Name" data-age="@item.age" value="@item.ID">@item.Description</option>
}
</select>
Javascript 看起来像:
<script>
$(document).ready(function () {
$("#InstituteID").change(function () {
var element = $(this).find('option:selected');
var name = element.attr("data-name");
var name = element.attr("data-age");
console.log("selected name is:"+ name);
});
})