0

我有一个简单的购物清单表格。在表格的第一列中,每一行都有一个下拉列表。

这是我用来恢复每个下拉列表的代码

@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 和名称?

4

1 回答 1

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++
}
于 2013-07-06T22:04:19.287 回答