2009-09-04 7 views
0

Je cherche une bonne solution pour passer deux objets génériques à un ViewPage comme ViewPagefortement typé données ViewPage

La vue doit rendre un client, et le SomePresentation contient des données utilisées dans la vue, pourrait être liste des villes où un client détient une ville.

Je ne souhaite pas utiliser ViewDate ["somedata"] pour diverses raisons. Donc, si quelqu'un a une solution pour faire fonctionner le deuxième paramètre, s'il vous plaît faites le moi savoir.

J'ai lu quelque chose sur l'utilisation d'un IPresentationModel, mais ne savez pas comment le faire

Meilleures salutations

Répondre

2

Utilisez des vues partielles pour rendre les deux ensembles de données et utiliser un pour le modèle de vue de restituer les deux ensembles de données.

afin que vous puissiez avoir un modèle de vue de formulaire comme;

public class myData 
{ 
    IQueryable cities {get;set;} 
    Customer mycust {get;set;} 
} 

puis remplir cet objet avec vos données et le retourner à la vue

return View(myData) 

passent ensuite les ensembles de données à vos vues partielles

1

juste passer une classe à votre point de vue:

public class MyViewData 
{ 
    public string SomeData {get;set;} 
} 

action du contrôleur ...

var model = new MyViewData {SomeData = "hello world"}; 
return View(model); 

votre vue delcaration ...

ViewPage<MyViewData> 

vue elle-même ...

<%=Model.SomeData%> 
0

Si vous devez utiliser ViewData au lieu d'un modèle, MVCContrib a une extension à ViewData qui donne une interface fortement typée à la propriété ViewData.

http://www.codeplex.com/MVCContrib

Mais le plus pratique est le modèle fortement typé comme les autres ont suggéré.

Questions connexes