> Dans un scénario général, lorsque vous utilisez Html.Partial ;
Html.Partial("partialViewName");
Le modèle qui est envoyé pour le parentView, peut être utilisé pour dans le partialViewName. De plus, la ViewData qui est envoyée pour le parentView peut également être utilisée pour le partialViewName.
> Comme un cas particulier, lorsque vous utilisez Html.Partial et si vous voulez envoyer Model
Html.Partial("partialViewName", newModel);
Vous ne pouvez pas atteindre le modèle qui a été envoyé pour la vue parent. Par conséquent, à partir de maintenant, le modèle qui est actif dans la partialViewName est le newModel. La viewData qui est envoyée pour parentView peut être utilisée aussi pour partialViewName.
> Comme un cas spécial, lorsque vous utilisez Html.Partial et si vous voulez envoyer ViewDataDictionary .
Le modèle qui est envoyé pour le parentView peut être utilisé également pour le partialViewName.
I.
@Html.Partial("partialViewName", new ViewDataDictionary { { "key", value }, { "key2", value2 } })
Ici, les ViewData qui ont été envoyées pour le parentView sont écrasées par 'new ViewDataDictionary'.
Ici, s'il y a un ViewBag qui est pour parentView, vous ne pouvez pas l'atteindre si vous écrivez le code comme celui ci-dessus.
II.
ViewDataDictionary viewDataDictionary = new ViewDataDictionary();
viewDataDictionary.Add("key", value);
viewDataDictionary.Add("key2", value2);
@Html.Partial("partialViewName", viewDataDictionary)
Cet usage est le même que le premier (I.).
III.
ViewDataDictionary viewDataDictionary = ViewData; //If you use this code block, ViewBag which is sent for parent View is not lost.
viewDataDictionary.Add("key", value);
viewDataDictionary.Add("key2", value2);
@Html.Partial("partialViewName", viewDataDictionary)
Avec ce bloc de code, vous pouvez atteindre les ViewData et ViewBag qui sont envoyés pour le parentView dans le partialViewName.
0 votes
Une chose à retenir au sujet de la dynamique est qu'elle est sensible à la casse.
0 votes
Mon erreur, j'ai utilisé @Html.Action dans la chaîne sans m'en souvenir.
7 votes
C'est vraiment idiot que j'aie obtenu un badge d'or pour cette question très médiocre. J'ai un peu honte.