我正在循環並嘗試更改列表中的「Selected」項目。@ Html.DropDownListFor選中的項目不工作
但是,默認項目未被選中。當我查看源html時,沒有「選定」參數。
這裏是我的類:
public List<SelectListItem> buyerDropdown { get; set; }
public int selectedBuyer { get; set; }
這裏是我的代碼:
@foreach (American_States state in Model.AmericanStates)
{
{
// change the "selected" buyer to match the buyer Id for this state
Model.buyerDropdown.Where(x => x.Value == Convert.ToString(state.Buyer.Id)).FirstOrDefault().Selected = true;
}
<tr>
<td>@state.name</td>
<td>@state.Title.OfficerName</td>
<td>@Html.DropDownListFor(model => model.selectedBuyer, Model.buyerDropdown, new { @class = "form-control" })</td>
<td></td>
</tr>
}
當我踏進我的代碼可以看到SelectItemList正確的項目被更新爲「選擇」。
我看不到爲什麼沒有選擇下拉菜單中的正確項目?
UPDATE
基於T-羅伊現在我有這樣的代碼:
當調試正在計算正確的價值選擇的指數值,但下拉仍然沒有選擇默認值:
@foreach (American_States state in Model.AmericanStates)
{
{
// change the "selected" buyer to match the buyer Id for this state
string selectedOption = Model.buyerDropdown.Single(x => x.Value == Convert.ToString(state.HudHomeStore_Buyer.Id)).Value;
<tr>
<td>@state.name</td>
<td>@state.HudHomeStore_Title.OfficerName</td>
<td>@Html.DropDownListFor(model => model.selectedBuyer, new SelectList(Model.buyerDropdown, "Value", "Text", selectedOption), new { @class = "form-control" })</td>
<td></td>
</tr>
}
}
您的模型類如何處理selectedBuyer?它看起來像你在所有美國州使用相同的屬性? –
你的代碼根本沒有意義。您可以在綁定到相同屬性的循環內創建多個下拉列表。您不僅會生成無效的html(重複的'id'屬性),而且只有第一個下拉菜單會在您提交時綁定到您的模型。你究竟想在這裏做什麼? –
模型綁定通過綁定到您的屬性的值來工作,所以它的'selectedBuyer'的值決定了選擇的內容(如果selectedBuyer的值匹配其中一個選項值,那麼它將被選中,但這會使得在'foreach'循環中沒有任何意義 –