Bonjour,

Je m'auto-forme � ASP.NET / C# / MVC et je butte sur un probl�me de conception, certainement d� � mon manque d'exp�rience en objet.

Je sch�matise en reprenant les traditionnels exemples :
- Une classe Animal
- Une classe Pintade et une classe Canard, h�ritant toutes les deux d'Animal

J'ai �galement une classe "Listes" dans laquelle j'ai juste d�fini un enum :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
 
    public class Listes
    {
        public enum ListeTypeAnimal
        {
            Pintade,
            Canard
        }
    }
J'ai un formulaire Web qui est r�cup�r� par une m�thode [HttpPost] Index() du contr�leur :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
[HttpPost]
 public ActionResult Index(Animal unAnimal,ListeTypeAnimal listeTypeAnimal)
        {
            Animal cetAnimal = new Animal();
 
            switch (listeTypeAnimal)
            {
                case Listes.ListeTypeAnimal.Pintade:
                    cetAnimal = (Pintade)unAnimal;
                    break;
                case Listes.ListeTypeAnimal.Canard:
                    cetAnimal = (Canard)unAnimal;
                    break;
            }
Vous l'aurez peut-�tre compris, je cherche � cr�er un objet "Pintade" ou "Canard" selon ce que le formulaire web contient dans un champ nomm� "listeTypeAnimal" (g�n�r� par un @Html.EnumDropDownListFor)

Je n'arrive pas � trouver la bonne articulation entre les diff�rents �l�ments, dans l'exemple ci-dessus j'obtiens une erreur de cast, j'ai fait d'autres tentatives, tout aussi infructueuses.

Auriez-vous une suggestion, une meilleure pratique � adopter ?

Merci d'avance