Est-il possible de renvoyer un type complexe d'un contrôleur vers une vue dans asp.net mvc? Tous les exemples que j'ai examinés jusqu'ici démontrent passer des types intrinsèques simples comme int, string ....Retour des données des contrôleurs aux vues dans asp.net mvc
Répondre
Vous pouvez passer n'importe quel type d'objet à la vue en utilisant le dictionnaire ViewData.
Il suffit de mettre dans votre contrôleur:
ViewData["example"] = (YourObject)data;
Et à votre avis:
<%= ((YourObject)ViewData["example"]).YourProperty %>
Et si vous voulez passer votre objet comme modèle Voir alors:
return View("viewname", (YourObject)data);
Et assurez-vous que votre vue ressemble à ceci:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<YourObject>" %>
Utilisez un ViewModel pour votre page.
vous pouvez utiliser un modèle de vue contenant à la fois des objets simples et complexes, par exemple:
public class MyComplexViewModel
{
public Address UserAddress { get; set;}
public List<string> ValidZipCodes { get; set; }
public string Message { get; set; }
}
Si votre vue hérite du ViewPage générique avec quelque chose comme ça
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MyComplexViewModel>" %>
vous pourriez alors dans la voir utiliser le modèle de vue comme modèle .:
<%= Html.Encode(Model.UserAddress.SomeAddressProperty) %>
<%= Html.Encode(Model.ValidZipCodes.Count) %>
<%= Html.Encode(Model.Message) %>
Vous pouvez créer un viewmodel tha t est ensuite utilisé dans la vue fortement typée. Vous pouvez vérifier ce blogpost by Stephen Walther qui l'explique. J'ai commencé à juste jeter des choses dans viewdata, mais cela devient assez confus assez rapidement;).
- 1. asp.net mvc - Vues et contrôleurs
- 2. ASP.NET MVC meilleure approche pour fournir des données aux vues
- 3. ASP.NET MVC - Travail des contrôleurs
- 4. ASP.NET MVC Globalisation des Vues
- 5. validation ASP.NET MVC et des vues
- 6. Utilisation des vues partielles dans ASP.NET MVC
- 7. des espaces dans les vues asp.net mvc
- 8. ASP.NET MVC Compiler des vues dans des assemblages distincts
- 9. Comment placer les contrôleurs et les vues associées dans des dossiers distincts dans ASP.NET MVC
- 10. Comment faire pour aller-retour des données en lecture seule entre les vues et les contrôleurs
- 11. Données partagées dans les vues ASP.NET MVC
- 12. ASP.NET MVC 2 Comment sont les urls/routes, les vues liées aux contrôleurs?
- 13. asp.net mvc rechercher et éditer des vues
- 14. ASP.NET MVC Beta - Grouper les contrôleurs et les vues possibles?
- 15. Asp.net MVC - Retour au contrôleur "hôte" lors de l'utilisation des vues partielles
- 16. Retard lors de la commutation des contrôleurs dans ASP.NET MVC
- 17. Réutilisation des contrôleurs dans différents sites Web avec asp.net mvc
- 18. asp.net application mvc - charger/remplacer les vues, les contrôleurs, les fichiers JS des assemblys de plugins
- 19. asp.net mvc avec des paramètres facultatifs et des vues partielles
- 20. Comment grouper des vues partagées partielles pour des contrôleurs spécifiés?
- 21. Rendu des vues partielles (fenêtres modales) dans asp.net MVC
- 22. Vues complexes ASP.NET MVC
- 23. ASP.NET MVC: Structurer les Contrôleurs
- 24. Contrôleurs ASP.NET MVC correctement initialisés lors des tests
- 25. passer des arguments aux méthodes d'action dans ASP.NET MVC
- 26. Contrôleurs IoC et ASP.NET MVC
- 27. ASP.NET MVC: constructeurs de contrôleurs
- 28. ASP.Net MVC Stongly Vues typées
- 29. asp.net mvc vues génériques/personnalisés
- 30. Comment nommer les contrôleurs Asp.net Mvc?
Pourquoi utiliser ViewData lorsque YourObject existe déjà dans la vue en tant que modèle? –
J'essayais de dire qu'il peut soit passer l'objet en utilisant les viewdata ou directement comme le modèle de vue. Ma réponse était très mauvaise, je l'admets. – Drevak