2010-05-03 9 views
0

J'ai besoin d'un bon exemple ou d'un bon guide qui pourrait me donner un schéma pour le passage de données entre vue et vue partielle.ASP.NET MVC Passage de données

Par exemple, j'offrent une vue qui contient plusieurs vues partielles. Je rafraîchis ces vues partielles par ajax. J'ai donc besoin de transmettre des données entre vue et ses vues partielles.

La meilleure façon serait si je pouvais transmettre des données sans utiliser le dictionnaire de données Temp.

Quelqu'un connaît un bon article à ce sujet?

l.

Répondre

3

1) Un moyen serait d'appeler RenderAction() et en tant que telle passez à l'action du contrôleur et contrôleur retournerait les données à la vue ou PartialView comme modèle pour elle. En général, vous devriez utiliser des vues fortement typées et des vues partielles lorsque cela est possible et essayer d'éviter d'utiliser ViewData et TempData.

2) Vous pouvez également utiliser RenderPartial ("une vue", ObjectData) pour envoyer un objet métier entier ou un objet POCO ou une variable CLR à la vue partielle.

3) Vous pouvez également avoir des vues partielles fortement typées les mêmes que votre point de vue principal (qui serait alors charger ces partials). Si vous avez le même type, faire juste RenderPartial ("une vue") rendra votre vue partielle avec le même modèle que la vue "principale" ou "parent".

Je ne pense pas avoir plus de 3-5 usages de ViewData ou TempData dans mes applications, je l'utilise presque jamais.

+0

Ce conseil est bon, +1 – Tejs

+0

Merci de votre réponse .. J'essaie de suivre vos étapes recommandées. Mais j'ai un bug étrange. Je passe le même modèle aux vues partielles et à la vue "parente". J'ai mis la valeur différente à la propriété de viemodel mais après la mise à jour ajax je vois la valeur originale sur la page pas la nouvelle que j'ai établie par l'intermédiaire de la demande d'ajax dans l'action de contrôleur. Avez-vous une idée pourquoi cela arrive? – user295541

+0

poster le code de votre vue et votre action de contrôleur et laissez-nous voir. – mare

Questions connexes