C# 从MVC3中的DropDownList获取值。。比将ID绑定到另一个字段更好的方法?
我想知道是否有其他方式来表达下面的代码位。代码按预期工作,但我对它如何定义命名约定有一个问题C# 从MVC3中的DropDownList获取值。。比将ID绑定到另一个字段更好的方法?,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我想知道是否有其他方式来表达下面的代码位。代码按预期工作,但我对它如何定义命名约定有一个问题 //Model.cs: [DisplayName("Device Manufacturer")] public List<KeyValuePair<int, string>> DeviceManufacturer { get; set; } public int SelectedManufacturerID { get; set; } //Model.ascx: <%=
//Model.cs:
[DisplayName("Device Manufacturer")]
public List<KeyValuePair<int, string>> DeviceManufacturer { get; set; }
public int SelectedManufacturerID { get; set; }
//Model.ascx:
<%= Html.DropDownListFor(model => model.SelectedManufacturerID, new SelectList(Model.DeviceManufacturer, "Key", "Value"))%>
然而,我不满意的是,MVC给我的选择列表提供了ID“SelectedManufacturerID”,而它不是一个ID字段——它是一个选择列表。显然,这是为了支持绑定到SelectedManufacturerID字段
如果我希望使用我的选择列表客户端,我现在有如下代码:
$('#SelectedManufacturerID').change(function(){
console.log("OnSelectedIndexChanged!");
});
这个jQuery非常不清楚。没有迹象表明SelectedManufacturerID是select DOM元素。使用本文顶部的MVC约定似乎不可能有合适的命名约定。还有其他人有这种感觉吗?我还有其他选择吗?使用
SelectedManufacturerID
。使用SelectedManufacturerID
。如果需要,可以使用不同的DropDownListFor
助手方法更新下拉列表的ID或其他html属性。在这里,您可以将html属性作为最后一个参数传递
<%= Html.DropDownListFor(model => model.SelectedManufacturerID,
new SelectList(Model.DeviceManufacturer, "Key", "Value"),
new { @id="ManufacturerList"})%>
model.SelectedManufacturerID,
新的选择列表(Model.DeviceManufacturer,“键”、“值”),
新的{@id=“ManufacturerList”})%%>
如果需要,可以使用不同的DropDownListFor
helper方法更新下拉列表的ID或其他html属性。在这里,您可以将html属性作为最后一个参数传递
<%= Html.DropDownListFor(model => model.SelectedManufacturerID,
new SelectList(Model.DeviceManufacturer, "Key", "Value"),
new { @id="ManufacturerList"})%>
model.SelectedManufacturerID,
新的选择列表(Model.DeviceManufacturer,“键”、“值”),
新的{@id=“ManufacturerList”})%%>
我不认为这是一个真正的问题,您可以将列表重命名为DeviceManufacturerList
而不是DeviceManufacturer
,选择的值为DeviceManufacturer
而不是SelectedManufacturerID
我不觉得这是一个真正的问题,您可以将列表重命名为DeviceManufacturerList
而不是DeviceManufacturer
,并将所选值重命名为DeviceManufacturer
而不是SelectedManufacturerID