IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

UserControl MVC fortement typ� : comment transmettre le Model


Sujet :

ASP.NET MVC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Par d�faut UserControl MVC fortement typ� : comment transmettre le Model
    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?

  2. #2
    Expert confirm�

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Architecte technique
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par d�faut
    salut,

    je suis pas bien sur de ce que tu as fait, mais, dans ta vue principale, tu devrais avoir ca :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     <% Html.RenderPartial("Profile", this.ViewData.Model.Profile); %>

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer � la rubrique .NET ? Contactez-moi par MP.
    Vous voulez r�diger des articles pour la rubrique .NET ? Voici la proc�dure � suivre.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Par d�faut
    OK Philippe, Merci �a marche avec ton code.
    En fait j'incluais mon userControl de la fa�on suivante:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    <%@ Register TagPrefix="uc" TagName="Profile" Src="~/Views/Home/Profile.ascx" %>
    [...]
    <uc:Profile ID="Profile1" runat="server" ViewData="this.ViewData.Model.Profile" />
    Et �a, �a ne fonctionne pas. On ne peut plus inclure les userControl de cette mani�re en ASP.NET MVC?

  4. #4
    Expert confirm�

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Architecte technique
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par d�faut
    Citation Envoy� par guste Voir le message
    Et �a, �a ne fonctionne pas. On ne peut plus inclure les userControl de cette mani�re en ASP.NET MVC?
    On peut toujours les inclure comme ca (du moins, � moins que ca ait chang�...), � condition de laisser tomber tout ce qui est fortement typ�...

    Utiliser RenderPartial permets d'avoir un meilleur contr�le sur ce que tu fais avec ta vue partielle, et permets de rester dans le m�me type d'utilisation que le reste de ton site, inclure un usercontrol "a la" webform risque de perturber le reste de l'�quipe plus tard...

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer � la rubrique .NET ? Contactez-moi par MP.
    Vous voulez r�diger des articles pour la rubrique .NET ? Voici la proc�dure � suivre.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Par d�faut
    C'est clair, prenons tout de suite les bonnes habitudes. De toutes fa�ons je veux du fortement typ� donc la question ne se pose pas. Encore merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. comment utiliser le modele MVC en C
    Par gooogl3r dans le forum C
    R�ponses: 3
    Dernier message: 14/11/2013, 20h52
  2. R�ponses: 2
    Dernier message: 19/09/2006, 13h26
  3. Comment transmettre un tableau par socket
    Par vodevil dans le forum Programmation et administration syst�me
    R�ponses: 11
    Dernier message: 08/04/2006, 14h19
  4. Comment transmettre des param�tres � un thread?
    Par Pragmateek dans le forum Threads & Processus
    R�ponses: 4
    Dernier message: 16/03/2006, 14h12
  5. comment transmettre 1 variable de formulaire a 2 page cible
    Par NoobX dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 23/03/2005, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo