Précédent   Forum du club des développeurs et IT Pro > Dotnet > Développement Web avec .NET > ASP.NET MVC
ASP.NET MVC Forum d'entraide sur le développement de site web avec le framework ASP.NET MVC.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 10/12/2012, 17h06   #1
lerieure
Membre régulier
 
Inscription : avril 2006
Messages : 204
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 204
Points : 77
Points : 77
Par défaut Retrouver mes types Dans une liste

Bonjour,

ASP.NET MVC - RAZOR - C#

un soucis sur l'édition de ma list<company>

J'ai une classe company et companyA et companyB qui spécialise company
Dans mon controller je charge une list<company> qui reçoit des companyA et des companyB.

Dans ma vue j'édite ma liste et lorsque je sauvegarde et que je me retrouve dans mon action, toutes les companyA et companyB sont de type company et je ne sais plus où est ce que je dois enregistrer mes compagnies car les companyA et companyB s'enregistre dans des bases différentes....

Merci beaucoup pour votre précieuse aide
lerieure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 17h47   #2
Nadinette
Membre du Club
 
Avatar de Nadinette
 
Femme Nadine M
Développeur Web
Inscription : octobre 2012
Messages : 88
Détails du profil
Informations personnelles :
Nom : Femme Nadine M
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2012
Messages : 88
Points : 59
Points : 59
Salut,

Déjà tu pourrais être plus clair dans la notion de liste...

Tu parles d'un select ? D'une Table ?

Peu importe l'enveloppe, tu te débrouilleras :

Tu ajoutes un champ à ton modèle qui s'appelle typecompagnie
Tu ajoutes un hiddenfor à ta vue pour que le type de compagnie de sortes que lorsque tu postes ta réponse, coté serveur elle puisse être identifée par rapport à ce champ.

Dans ton contrôlleur lorsque tu récupères ta ligne de type compagnie dans la variable model, tu testes le champ typecompagnie.

Si typecompagnie = A alors
compagnieA MaCompagnieA = (compagnieA)model;
compagnieA.Sauve(); //méthode d'exention adaptée à compagnieA.
Si typecompagnie = B alors
compagnieB MaCompagnieB = (compagnieB)model;
compagnieB.Sauve(); //méthode d'exention adaptée à compagnieB.

Tu peux faire ça de plein de façons avec des interfaces, une classe abstraite, des vieux if à l'ancienne....

Merci de me dire si ça t'aide

@+


SauveCompagnie(compagnieA comp);



Si typecompagnie = B tu appelles SauveCompagnie(compagnieB comp);

Ensuite tu codes ton truc à l'intérieur en sauvant dans la bonne base et en factorisant comme il faut.
Nadinette est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/12/2012, 00h13   #3
redkan
Membre à l'essai
 
Inscription : octobre 2007
Messages : 84
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 84
Points : 20
Points : 20
Bonsoir,

Il me semble qu'il suffit de tester le type de ta classe avec l'opérateur "is".

Code :
1
2
3
4
5
6
7
 
foreach(Company c in companies) {
     if(c is CompanyA)
         ...
     if(c is CompanyB)
         ...
}
redkan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h37.


 
 
 
 
Partenaires

Hébergement Web