2009-08-03 3 views
0

J'ai un fort typé VoirMVC accéder à d'autres classes sans chemin d'espace de noms complet

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyPortal.Domain.Kite>" %> 

Dans la vue que je fais un foreach sur une liste que j'ai placé sur ViewData qui a un type différent

<% 
foreach(var item in (List<MyPortal.Domain.Brand>)ViewData["BrandsList"]) { } 
%> 

Dois-je définir le chemin complet de la classe: MyPortal.Domain.Brand ou existe-t-il une meilleure façon de le faire. Juste dire List<Brand> ne fonctionne pas. Est-il possible d'hériter MyPortal.Domain de la vue afin que je puisse référencer toutes les classes sous le domaine sans avoir à spécifier le chemin d'accès complet pour chacun d'eux.

Répondre

0

Si vous voulez une vue fortement typé alors pourquoi vous passez dans une autre ViewData, qui contrecarre le but de l'avoir fortement typé. Si cette vue a besoin des deux types, créez un modèle d'objet contenant les deux types et tapez fortement sur cet objet.

Ensuite, vous pouvez énumérer chacun comme celui-ci,

foreach (var item in Model.My1stType).... 

et

foreach (var item in Model.My2ndType).... 
Questions connexes