2010-09-09 12 views

Répondre

3

Incluez simplement l'objet Person dans le modèle de vue, n'essayez pas de copier l'objet du tout.

public class PersonViewModel 
{ 
    public Person Person { get; set; } 

    ... plus other properties your view model might need 
} 

puis dans votre contrôleur:

PersonViewModel pVM = new PersonViewModel { Person = person } ; 
+0

donc dans mon ViewModel j'ai ceci: public string Prénom {return Person.FirstName;}, Hey c'est intelligent! – Elisabeth

+0

C'est un moyen, mais vous n'avez pas besoin de faire cela. Dans votre vue (page), référez-vous simplement à Model.Person.FirstName – Clicktricity

+0

mais c'est comme ça que Josh Smith le fait! : P Le ViewModel délègue la liaison au modèle ... btw. Comment agréger ViewModel avec une relation maître-détail comme CustomerViewModel a une liste de OrderViewModel? – Elisabeth

3

Automapper est la meilleure chose depuis la boucle for, peut-être même la déclaration if.

1

Je pense que vous ne comprenez pas le point du viewmodel. Le viewmodel est censé être un mappage/interface avec le modèle, pas une copie de celui-ci.

+0

jamais dit c'est une copie, mais la façon dont je le vois très souvent mis en œuvre le fait ressembler à une copie ... – Elisabeth

+0

Il peut ressembler à une copie parce que c'est un MAPPING. – Pygmy