2009-04-23 7 views
15

J'ai une page maître fortement typée, mais je veux utiliser un type différent pour certaines de ses pages enfants.ASP.NET MVC - différents modèles pour la page maître et la page de vue

Par exemple, sur la page principale ...

<%@ Master ... Inherits="System.Web.Mvc.ViewMasterPage<MyWeb.Models.Client>" %> 

client est déjà un objet composite, ainsi de suite quelques-unes des pages de l'enfant que je peux garder le même modèle et référence seulement des objets membres. Mais sur d'autres pages, cela n'a aucun sens de le faire car je traite un modèle différent, par exemple, une page enfant qui traite un modèle client.

Ma page maître a toujours besoin du modèle Client, mais les vues enfant fonctionneront entièrement avec différents modèles. Le problème est que dans un contrôleur, vous ne pouvez passer qu'un modèle d'objet à la vue. Y at-il un moyen de passer un modèle au maître et un autre à la vue? Merci!

+0

Belle question, j'allais demander la même chose! Top réponse si je dois dire. Comme le dit Mastermind, si simple! Eh bien, il est maintenant lol ;-) –

+0

Même dilemme - bien indiqué. Merci op. – nocarrier

Répondre

14

Vous pouvez créer une hiérarchie et transmettre le modèle de base à la page maître et aux modèles enfants à vos vues.

public class BaseModel 
{ 
} 

public class ChildModelOne : BaseModel 
{ 
} 

public class ChildModelTwo : BaseModel 
{ 
} 

De cette façon, vous maître vue ne voir ses propres données (disponible en classe modèle maître) alors que vous vues auront accès à des informations étendues disponibles dans les classes de modèle enfant.

Très simple.

+0

Fantastique. Élégant et merveilleux. – nocarrier

Questions connexes