2013-04-30 4 views
0

sur une page que je suis rendu autre vue de cette façon:MVC lambda ne fonctionne pas sur RenderPartial

<% Html.RenderPartial("Angebotspruefung", new ViewDataDictionary {{ "OpportunityEditModel", Model }} }); %> 

et vue rendu, je retrive ce modèle ainsi:

<% 
    OpportunityDetailsEditModel model = (OpportunityDetailsEditModel)ViewData["OpportunityEditModel"];  
%> 

et il y a qqch très très wird, je peux plus accéder propriétés avec <%= model.Property %> mais lambda does't travail, donc cela ne fonctionnera pas

<%= Html.HiddenFor(m => m.Property) %> 
+0

ne fonctionnera pas de quelle façon? Quelle erreur de compilation/d'exécution avez-vous? Y at-il un modèle déclaré sur la vue où vous faites le 'HiddenFor'? –

+0

il n'y a pas de problème avec la compiliation, juste il y a des valeurs nulles – kosnkov

+0

le fil suivant montre ce que vous devez faire. http://stackoverflow.com/questions/6850174/html-hiddenfor-value-property-not-getting-set –

Répondre

1

L'expression Lamda Helpers ne fonctionne qu'avec les vues fortement typées. Au lieu de transmettre ViewData, faites votre Vue Partielle Fortement typée et passez à Html.RenderPartial le Modèle d'Objet. Ensuite, vous aurez la fonctionnalité attendue avec lambda.

<%= Html.HiddenFor(m => m.Property) %> 

Dans ce code ci-dessus m est suposed être le modèle de son point de vue, si l'assistant tente de rendre le contrôle, mais son point de vue n'a pas de modèle, son setted manuellement par un objet, la réflexion du rendu de contrôle échoue.

EDIT:

RenderPartial a une surcharge qui vous donne la possibilité de passer le modèle en tant que paramètre, jetez un oeil ici:

RenderPartial

Espoirs son aide votre!

+0

Comment puis-je passer au modèle d'objet partialView? – kosnkov

+0

@kosnkov J'ai modifié le commentaire! Toutes les informations sont au-dessus! Espère que ça t'aide! :) – Fals

Questions connexes