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 :

[MVC3] Transfert modele au layout


Sujet :

ASP.NET MVC

  1. #1
    CUCARACHA
    Invité(e)
    Par défaut [MVC3] Transfert modele au layout
    Salut,

    J'ai créé 3 classes qui héritent d'une base commune.
    La base contient les informations nécessaire à l'enrichissement du layout.

    donc j'ai :
    class ContentViewBase
    class ContentViewPage : ContentViewBase
    class ContentViewNewsletter : ContentViewBase
    class ContentViewContact : ContentViewBase

    Comment puis-je passer la base au layout.

    Je dois caster les descendants en classe de base mais je n'arrive pas à trouver où je dois le faire.

    J'ai mis un

    @model ContentViewBase dans layout mais ça ne fait pas automatiquement la conversion.

    Pourriez-vous m'aider à le faire ?

    D'avance merci

    Laurent

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    J'ai eu un problème similaire avec du mvc2. J'en suis arrivé à la conclusion que : mettre dans ma master le type parent impliquait simplement une restriction de type mais pas de cast.

    Du coup, j'ai ajouté un cast 'a la main':

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<Common.View.Personne>"
    <% var monModel = Model as Common.View.Personne;%>
    Ça marche c'est carré (dans le sens ou il n'y pas d'ambiguïté possible mais c'est pas beau).
    Si tu as une meilleure solution je suis preneur.

  3. #3
    CUCARACHA
    Invité(e)
    Par défaut
    Salut,

    Merci pour ta participation, en fait j'ai tout simplement mis :

    dans mon controlleur j'ai juste un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    {
    ...
    return View(instancedemaclassederiveedemaclassedebase)
    }
    dans _layout.chtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @{
    	var layoutModel = (maclassedebase)Model;
    }
    Ca marche

    ++

    Laurent

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Question bête: c'est pour faire quoi? Factoriser le code du cshtml ?

  5. #5
    CUCARACHA
    Invité(e)
    Par défaut
    J'ai plusieurs types de pages, toutes doivent avoir les mêmes meta, tous les membres metas sont communs à toutes les pages.
    ++

Discussions similaires

  1. Layout independant du model d'Iphone
    Par ppost dans le forum Développement iOS
    Réponses: 3
    Dernier message: 31/03/2014, 16h56
  2. [MVC3] Controles dynamiquement créés et model
    Par aware dans le forum ASP.NET MVC
    Réponses: 6
    Dernier message: 01/02/2012, 09h32
  3. [MVC3] Update en boucle des données de mon model
    Par blasil64 dans le forum ASP.NET MVC
    Réponses: 3
    Dernier message: 02/01/2012, 01h07
  4. Transfert de données ActionLink et Model
    Par supermouton dans le forum ASP.NET MVC
    Réponses: 4
    Dernier message: 02/08/2011, 08h53
  5. Réponses: 1
    Dernier message: 27/01/2011, 07h51

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