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 :
Le problème est le 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(); }
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 :
la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyApp.Models.ProfileModel>" %>plante car elle attend un objet m de type ProfileModel et non PersonModel. Comment peut-on lui passer la propriété Profile?
Code : Sélectionner tout - Visualiser dans une fenêtre à part <%= Html.DisplayFor(m => m.Name) %>
Partager