有沒有辦法將一組枚舉傳遞給ActionMethod(在GET上)?將枚舉傳遞給ASP.NET MVC ActionMethod
舉例來說,如果我有以下枚舉定義:
enum DaysEnum {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
而且,我有一個ActionMethod定義:
ActionResult SampleActionMethod (List<DaysEnum> days)
有沒有一種方法,我可以呈現,在視圖中,一個可傳入DayEnums集合的URL。喜歡的東西:
var someDays = new List<DaysEnum> {DaysEnum.Sat, DaysEnum.Sun, DaysEnum.Mon};
Url.Route(new { days = someDays, controller="whatever", action="SampleActionMethod"});
默認的model binder似乎並不支持這一點,因爲我目前得到以下渲染:
http://.../System.Collections.Generic.List`1[DaysEnum]
我知道我可以通過手動壓扁集合做到這一點比如說一個破折號字符串,然後在ActionMethod中重新創建集合,但我正在尋找更優雅的東西。各種blogposts談論傳遞集合,但更多的是關於什麼時候做POSTS。
謝謝,這是有效的。唯一的問題是URL不再友好。因此,而不是http://控制器/動作/值1 /值2/...,我知道得到的http://控制器/動作參數1 =值1&參數2 =值2和天[0] =太陽和天[1] =週一儘管如此,它還是比手動綁定更好 – sohail 2010-10-20 11:08:56