Bonjour,

Je rencontre un problème en voulant utiliser une vue MVC fortement typée, je m'explique :
- J'ai un Controller HomeController.cs contenant une action Person
- J'ai une View associée à cette action Person.aspx qui est fortement typée.
- Le Model correspondant est PersonModel.cs
Jusqu'ici rien de spécial.
- J'ai créé un UserControl View MVC fortement typé Profile.ascx
- Le Model correspondant est ProfileModel.cs
Je veux utiliser ce UserControl dans ma View :
- Une référence à Profile.ascx est incluse dans ma View Person.aspx
- Le Model PersonModel.cs à une propriété public Profile de type ProfileModel.cs
- Dans mon action Person de HomeController.cs j'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public ActionResult Person()
{
     PersonModel person = new PersonModel();
     person.Profile = new ProfileModel();
     person.Profile.Name = "toto";
     ViewData.Model = person;
     return View();
}
Le problème est le suivant :
Comment récupérer l'objet de type ProfileModel de la propriété Profile dans ma View UserControl sachant que le typage est fait de la façon suivante dans Profile.ascx :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyApp.Models.ProfileModel>" %>
la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<%= Html.DisplayFor(m => m.Name) %>
plante car elle attend un objet m de type ProfileModel et non PersonModel. Comment peut-on lui passer la propriété Profile?