我有部分看法有这样的东西
<%= Html.DropDownListFor(m => m.SelectedProductName,Model.ProductList,"Select a Product") %>
现在您可以创建新产品并编辑现有产品。编辑和创建都使用相同的形式。创建在加载的主页上。编辑在jQuery UI模型对话框中弹出,并呈现新的局部视图。
所以就这个页面而言,我有两个下拉框具有相同的“id”,这是坏的,因为它们应该是唯一的。那么如何更改id?所以当编辑加载它可能有一个id为“editSelectedProductName”?
我试图在视图模型中做到这一点
public string SelectedProductName{ get; set; } ViewModelConstructor() { SelectedProductName = "EditSelectedProductName"; }
但似乎不在乎,并且继续使用“SelectedProductName”作为产品名称
解决方法
我现在找不到文档,但是DropDownListFor有一个重载,它将接受一个对象类型的属性集合(HtmlAttributes是参数名称)。
它看起来像这样:
Html.DropDownListFor(model=>model.SomeProperty,new {@id="UniqueID1234"});
您可以使用Intellisense来查找包含HtmlAttributes的重载。