Comment obtenir les propriétés de mon BLL transmises à un ModeView. Par exemple, j'ai cette classe dans une bibliothèque de classes séparées:MVC2 ViewModel Binding
[MetadataType(typeof(PersonMetaData))]
public partial class Person
{
[Bind(Include = "PersonId,DepartmentId,FirstName,LastName,Active,DateAdded,DateDeleted")]
public class PersonMetaData
{
public object PersonId { get; set; }
public object DepartmentId { get; set; }
public object FirstName { get; set; }
public object LastName { get; set; }
public Department PersonDepartment { get; set; }
public string FullName()
{
return string.Format("{0} {1}", FirstName, LastName);
}
}
}
Mon ViewModel ressemble à ceci:
public class PersonViewModel
{
public int PersonId { get; set; }
public string FullName{ get; set; }
public string PersonDepartment { get; set; }
}
Quand je produis un nouveau « Voir » fortement typé au PersonViewModel et défini comme "Liste" Afficher le contenu .... la page est générée, mais FullName ne s'affiche pas.
J'ai créé la propriété PersonDepartment car je souhaite afficher le nom du département dans lequel se trouve la personne. Une classe de service a été créée de manière similaire. Par exemple, je veux être capable de faire quelque chose comme "PersonDepartment.DepartmentName" qui affiche le nom du département sur la page. J'utilise DBML (Linq To SQL), donc les classes partielles s'étendent à partir des classes générées automatiquement.
Je ne suis pas sûr de savoir comment remplir la propriété FullName et la transmettre à ViewModel et obtenir les propriétés de département connectées aux informations de personne transmises. Toute aide serait grandement appréciée.
Je suppose bien sûr que vous remplissez le modèle de vue avant de le passer à la vue, oui? – joshlrogers
Désolé - oui. ViewModel est rempli à l'aide de la DLL AutoMapper. Le mappage fonctionne car la propriété PersonId est en fait transmise. – obautista