我想知道是否有另一种方式来表达以下代码。该代码按预期工作,但我对它如何定义我的命名约定有疑问。
//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"))%>
现在,无论何时更改选定的列表项——新值都存储在 SelectedManufacturerID 中。我能够像这样在我的控制器中接收值:
int selectedID = model.SelectedDataCenterID;
但是,我对 MVC 为我的选择列表提供 ID“SelectedManufacturerID”这一事实感到不满意,因为它不是一个 ID 字段——它是一个选择列表。显然,这是为了支持绑定到 SelectedManufacturerID 字段。
如果我希望使用我的选择列表客户端,我现在有如下代码:
$('#SelectedManufacturerID').change(function(){
console.log("OnSelectedIndexChanged!");
});
这个jQuery非常不清楚。没有迹象表明 SelectedManufacturerID 是一个选择 DOM 元素。使用本文顶部的 MVC 约定似乎不可能有正确的命名约定。有人有同感吗?我还有其他选择吗?