2009-12-15 9 views
0

Je reçois une erreur dans mon contrôle viewuser:classe fortement typée dans mon ViewUserControl ne fonctionne pas?

Impossible de charger le type « System.Web.Mvc.ViewUserControl »

Mon ViewPage passe la classe MyViewUserControllerUserList dans l'appel RenderPartial.

Alors que je fais:

    l'action
  1. crée ses données de vue fortement typé, qui a une propriété qui est une classe fortement typé que mon userlist.ascx attend.

userlist.ascx:

Inherits="System.Web.Mvc.ViewUserControl<MyViewUserControllerUserList>" 

Suis-je faire cela correctement?

Mise à jour

Juste pour vous assurer, mon code pour mon fortement typé contrôle utilisateur partiel est:

public class MyViewUserControllerUserList: ViewUserControl 
{ 

} 

Répondre

1

La syntaxe que vous avez l'air correct, mais vous devez vous assurer que l'espace de noms est compris également.

Inherits="System.Web.Mvc.ViewUserControl<My.Class.Namespace.ModelClass>" 

Ensuite, vous passeriez dans comme celui-ci

<% Html.RenderPartial("PartialName", InstanceOfModelClass); %> 

accéder ensuite à l'intérieur de la partie en utilisant la propriété du modèle.

+0

La classe InstanceOFModelClass est: ViewData.Model. correct? – mrblah

+0

Ça pourrait l'être. Il pourrait également s'agir d'un morceau de données de vue qui a été placé dans votre contrôleur ce n'est pas votre modèle. Disons donc dans votre contrôleur que vous avez ViewData ["PartialModel"] = SomeObject; puis dans votre page maître, vous pouvez appeler <% Html.RenderPartial ("PartialName", ViewData ["PartialModel"]); %> En bref, vous pouvez avoir n'importe quel objet dans vos données de vue soit le modèle d'un partiel. J'espère que cela vous aide. –

+0

Je vois bien, j'utilise fortement viewdata typé à la fois dans mon modèle et dans l'appel à mon partiel. laisse-moi enquêter sur Arghhh! – mrblah