我有一个剃刀视图,有一张简单的购物清单。在表格的第一列中,每行都有一个下拉列表。
以下是我用来带回每个下拉列表的代码
@foreach (var food in shoppingList.Foods)
{
<tr>
<td>@Html.DropDownListFor(m => food , new SelectList(Model.Foods,"FoodID","Name",@food.FoodID))</td>
<td>@food.Name</td>
<td>@food.Price</td>
</tr>
}
使用此代码,我可以根据需要获取数据,但我想为每个选择提供唯一的ID /名称。目前,这是生成的html。
第一次选择
<td><select id="food" name="food">
<option selected="selected" value="1">Chicken</option>
<option value="2">Milk</option>
<option value="3">Bread</option>
<option value="4">Apple</option>
<option value="5">Cake</option>
<option value="6">Ham</option>
</select></td>
第二次选择
<td><select id="food" name="food">
<option value="1">Chicken</option>
<option selected="selected" value="2">Milk</option>
<option value="3">Bread</option>
<option value="4">Apple</option>
<option value="5">Cake</option>
<option value="6">Ham</option>
</select></td>
请注意,他们都有id =“food”name =“food”。
我如何才能提供这些唯一的ID和名称?
答案 0 :(得分:1)
不确定您是如何考虑将其绑定到您的模型上的,但这里有几种方法可以做到:
1
@{
int i = 0;
}
@foreach (var food in shoppingList.Foods)
{
@Html.DropDownList("food-" + i.ToString() , new SelectList(Model.Foods,"FoodID","Name",@food.FoodID))
i++
}
2
@{
int i = 0;
}
@foreach (var food in shoppingList.Foods)
{
@Html.DropDownListFor(m => food , new SelectList(Model.Foods,"FoodID","Name",@food.FoodID), new { @id = "food-" + i.ToString() })
i++
}