J'ai un scénario unique dans lequel je souhaite qu'un contrôleur de base saisisse des données et les stocke dans une liste. La liste doit être accessible depuis mes vues, tout comme ViewData. J'utiliserai cette liste sur chaque page et je voudrais une solution plus propre que de simplement l'insérer dans le ViewDataDictionary. Après avoir tenté de trouver une solution, j'ai pensé créer une ViewPage personnalisée avec une propriété pour contenir ma liste. Mon ViewPage personnalisé hériterait de System.Web.MVC.ViewPage. Cependant, je ne sais pas où MVC passe les viewdata du contrôleur à la vue. Plus important encore, comment puis-je faire passer ma liste à la vue?ASP.NET MVC transmet les informations du contrôleur à afficher SANS ViewData, ViewModel ou Session
Merci pour l'aide.
EDIT ....
Désolé pour la confusion. J'essayais de garder la question aussi simple que possible pour éviter toute confusion. Évidemment, cela n'a pas fonctionné :)
J'applique ma propre gestion de session dans un projet .net mvc. Quand une requête arrive, mon contrôleur de base vérifie si un cookie de session a été envoyé avec la requête dans la méthode OnActionExecuting. Si un cookie de session a été envoyé, mon contrôleur frappe la base de données et récupère les informations de session de l'utilisateur. Les informations de session (userid, etc ..) sont placées dans un objet List et stockées dans une propriété appelée "Sess".
Je veux être en mesure d'accéder à des éléments dans la liste sess de mon point de vue comme celui-ci:
Alors, comment et où puis-je obtenir mon contrôleur à la main de la liste sess à mon point de vue? Je réalise que ce n'est pas la façon dont la gestion de session personnalisée est généralement implémentée dans .net. Cependant, ce serait la solution la plus simple et la plus propre pour mon projet.
Merci à tous ceux qui ont aidé jusqu'ici!
Ceci est l'un de ces scénarios qui ressemblent à RenderAction peut être mieux adapté pour le travail. S'il y a des données qui doivent être rendues sur chaque page (comme un menu), RenderAction rend cela beaucoup plus facile. Il s'agit simplement d'un moyen simple de parcourir le cycle de vie afin de pouvoir partager des parties de votre application partagées (menus, publicités, widgets) – Jab
Je suis d'accord avec Jab, rendez-vous avec RenderAction si vous avez besoin de données dynamiques. sorti de la banque de données ou aller avec RenderPartial si vous voulez juste rendre un ASCX (vous pouvez aussi éventuellement fournir un Modèle à RenderPartial si vous le souhaitez) – mare