Existe-t-il un moyen de transmettre automatiquement une collection d'énumérations à une méthode ActionMethod (sur un GET)?Passez la collection d'énumérations à ASP.NET MVC ActionMethod
Par exemple, si j'ai la définition enum suivante:
enum DaysEnum {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
et j'ai une définition ActionMethod de:
ActionResult SampleActionMethod (List<DaysEnum> days)
Est-il possible que je pourrais rendre, dans une vue, une URL qui passerait dans une collection de DayEnums. Quelque chose comme:
var someDays = new List<DaysEnum> {DaysEnum.Sat, DaysEnum.Sun, DaysEnum.Mon};
Url.Route(new { days = someDays, controller="whatever", action="SampleActionMethod"});
Le modèle de liaison par défaut ne semble pas supporter cela, puisque je reçois actuellement ce qui suit rendu:
http://.../System.Collections.Generic.List`1[DaysEnum]
Je sais que je peux le faire en aplatissant manuellement la collection par exemple, une chaîne délimitée par des tirets, puis recréer la collection dans la méthode ActionMethod, mais je regardais quelque chose de plus élégant. Divers blogposts parlent de passer dans les collections, mais cela concerne plutôt les POSTS.
Merci, cela fonctionne. Le seul problème est que l'URL n'est plus conviviale. Donc, au lieu de http: // contrôleur/action/valeur1/valeur2/..., je sais obtenir http: // contrôleur/action? Param1 = valeur1 & param2 = valeur2 & jours [0] = Sun & days [1] = Mon. Encore, c'est mieux que la liaison manuelle – sohail