大多數例子我已經看到了如何使用DropDownListFor顯示模型與IEnumerable或List的SelectListItem的,你可以設定Selected為你希望最初顯示的專案屬性。
對一系列下拉串列執行此操作的(或 a)正確方法是什么?我想我可以做一個IEnumerable<IEnumerable<SelectList>>這樣每個下拉選單都IEnumerable<SelectList>>選擇了適當的值,但這似乎不正確。
我認為該DropDownListFor方法有一個多載讓您設定默認值會很有意義。目前我能想到的最佳解決方案是在呼叫DropDownListFor.
但肯定有更合適的方法來做到這一點嗎?或者也許DropDownListFor只是不適合這項作業,直接 html 會更容易?
uj5u.com熱心網友回復:
而不是 DropDownListFor 我通常使用
<select class="form-control" id="itemId" asp-for="@Model.ItemId"
asp-items="@Model.Items"></select>
其中 Items = List< SelectListItem >。它會自動從選擇串列的值中選擇 ItemId 并顯示正確的文本。
uj5u.com熱心網友回復:
我最終只是在DropDownListFor陳述句正上方的視圖中添加一行代碼來更改所選專案,如下所示:
Model.ExpenseCategories.ForEach(cat => cat.Selected = cat.Value == item.CategoryName);
似乎應該有更好的方法來做到這一點,但這是一個非常簡單的解決方案。在接受我自己的答案之前,我會稍等片刻,以防其他人有更好的方法來做到這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/371444.html
上一篇:引數1:無法從“System.Collections.Generic.List”轉換為“System.Collections.Generic.List”
