好的我已經瀏覽過不同的網站,關於在DropDownLists
中使用ENUM
的問題,並且與使用Custom Helpers在將值傳遞給ViewBag之前將值傳遞給DDL
的人有點混淆。將ENUM分配給DropDownList
enum values in drop down list in mvc4
我用各種Html.DropDownList
助手整個網站,但在DDL
之前沒有使用到ENUM
。我寧願將它們硬編碼到視圖中,因爲我正在使用switch
語句來控制選擇filter
選項時發生的情況。所以想知道是否有一個簡單的方法來實現這一點,而不需要創建一個新的幫手來糾正這種情況。
這裏是我到目前爲止(減去不必要的代碼):
public enum OrderFilter
{
All,
Live,
InProgress,
Invoiced,
Outstanding
}
public ActionResult Index(OrderFilter? orderFilter)
{
ViewBag.FilterOptions = orderFilter;
}
@Html.DropDownList("orderFilter", (IEnumerable<SelectListItem>)ViewBag.FilterOptions, "Filter Options")
如果我這樣做是因爲我在上面所做的反應是「有型‘IEnumerable<SelectListItem>
’有沒有ViewData的項目關鍵'orderFilter
'「。
我正在尋找類似於以下代碼的東西,但沒有使用自定義幫助器(如果可能)。
@Html.DropDownList("misc", (IEnumerable<SelectListItem>)ViewBag.Misc)
var users = _userRepository.GetData().Select(u => new SelectListItem
{
Value = u.Id.ToString(CultureInfo.InvariantCulture),
Text = u.Details
});
ViewBag.Administrators = users;
爲什麼你不希望這個自定義的HTML幫助? –
我已經完成了所有其他下拉列表(不使用ENUM)與MVC提供的內置功能。所以我試圖避免在不需要的地方創建多餘的代碼。 我完全開放的建議,如果你可以提供有效的推理,爲什麼它應該使用,那麼我會碰巧測試它。 – Damian