2008-10-24 5 views
0

Le SearchViewData fortement typé a un champ appelé couleurs qui dans son tour est un ColorViewData. Dans mon /Colors.mvc/search je remplir ce viewData.Model.Colors selon les critères de recherche donnés. Puis, en fonction de plusieurs facteurs, je rends l'un d'un ensemble de contrôles utilisateur qui sont capables de se render avec un ColorViewData.
Alors je vais finir avec:Passez Viewdata en tant que membre à partir d'autres données à RenderPartial rend le premier null

<%Html.RenderPartial("~/Views/Color/_ColorList.ascx", ViewData.Model.Colors);%> 

Ceci fonctionnait très bien, mais depuis la mise à niveau vers la beta1, mon contrôle utilisateur se termine toujours avec viewdata = null;

Suggestions?

Répondre

3

probablement des problèmes de surcharge. Vous pouvez appeler le RenderPartial (chaîne, objet, ViewDataDictionary) qui rend les trois paramètres explicites.

Une chose que nous prévoyons de modifier est que si vous appelez la surcharge RenderPartial (chaîne, objet), nous passerons le ViewDataDictionary actuel au partial. Nous ne le faisons pas dans la version bêta, mais il semble que ce soit un scénario très commun et rendra cette méthode plus utilisable.

+1

Merci, dat a fait l'affaire en effet. Si je comprends bien votre message, je me méprends sur la différence entre le modèle passé et les données de vue. ViewData ne contient-il pas déjà une référence au modèle? Pourquoi ai-je besoin de le transmettre deux fois? –

0

Remarqué la même chose, je l'ai fixé avec ce qui suit, bien que je ne suis pas sûr que ce soit la solution « droit »:

<% Html.RenderPartial("xxx", new ViewDataDictionary(ViewData.Model.Colors)); %> 
+1

"xxx"? Quel genre de site construisez-vous;) –

Questions connexes