@modèle pour _layout.cshtml sur MVC4?

Je me demandais si il existe un moyen de spécifier un modèle pour la _layout.cshtml fichier, j'ai vu beaucoup de posts à la base de la même question avec des personnes répondant par "alternative" des solutions, ne pas dire qu'il n'est pas possible ni montrant exactement comment nous pourrions atteindre cet

avoir une certaine expérience avec les formulaires web, j'ai essayé de migrer vers MVC et je me retrouve souvent avec de telles questions, j'ai trouvé ce site: http://blog.bitdiff.com/2012/05/sharing-common-view-model-data-in.html
ce qui a été partiellement résolu mon problème, mais même eux ne se lient pas leur _layout.cshtml avec un @de modèle, pour autant que je sais, je dois spécifier un modèle sur chaque vue, si je veux accéder à la SharedContext, merci de corriger si je me trompe

ce que je voulais faire est de déclarer un "@le modèle de l'espace de Noms.Monmodèle" sur _layout.cshtml de sorte qu'il puisse récupérer ses informations par lui-même, au lieu d'avoir à mettre en œuvre un modèle pour chaque vue inherinting de la LayoutModel

*J'espère que je suis clair, en gros, je voulais savoir comment puis-je declare @étiquette de modèle sur un _layout.cshtml de sorte qu'il peut accéder à son propre modèle

avec la solution que j'ai lié avant (même si c'est pas lié à ma question) j'ai à faire:
@(((BaseController)ViewContext.Le contrôleur).Contexte.De la propriété) pour obtenir de l'information partagée, et si je peut simplement déclarer (et d'utiliser) un @modèle au lieu de cela, je pourrais faire la même chose en faisant quelque chose comme: @Modèle.La propriété*

comme vous pouvez le voir, im du mal à essayer de migrer tout ce que je sais déjà de webforms à MVC et il est assez difficile pour moi, puisque j'ai pour l'adoption de certaines pratiques qui sont complètement différentes de ce que je suis habitué à

merci d'avance

  • Pourquoi est-ce que votre _layout besoin d'un modèle?
  • c'est parce que je voulais accéder à la "partagé" (Session) de l'information, plus précisément, j'ai un fond aléatoire est généré à chaque nouvelle session web et l'url est utilisée sur _layout.cshtml
  • Bon, d'avoir un modèle dans _layout n'est pas une bonne idée, vous pouvez utiliser le ViewBag pour qu' - découvrez cette réponse stackoverflow.com/questions/6267727/...
  • c'est exactement ce que je voulais éviter (le ViewBag), j'ai pensé qu'il serait possible d'avoir un typage fort dans ma mise en page au lieu de compter sur le ViewBag pour éviter les petites choses comme l'insertion d'une propriété, je voulais compter sur le compilateur
  • _layout partielle utilisé par l'ensemble de vos points de vue. La spécification d'un modèle il y aurait ajouter une restriction à tous les afficher sur votre site pour avoir aussi ce modèle.
  • Comme une alternative à ViewBag vous pouvez également utiliser un enfant d'action.
  • vous êtes éviter une "mauvaise pratique" (typage dynamique de ViewBag), mais d'essayer de la remplacer par une autre mauvaise pratique (liant votre disposition pour modèle de données). Les mises en page ne doit pas se baser sur les données...
  • mais ne serait pas correct dans ce cas de disposer d'un modèle lié à un affichage qui utilise la mise en page? depuis tout va utiliser _layout et, par conséquent, ils ont besoin de ce bien ainsi?
  • tu veux dire dans ce cas je devrais essayer de faire un enfant d'action pour rendre le style contenant de l'arrière-plan dans la _layout au lieu d'essayer de "joindre" mon _layout à un modèle?
  • Pouvez-vous donner un exemple de ce que l'information dont vous avez besoin pour afficher dans votre _layout?
  • vous avez raison, je n'ai pas arrêté de penser de cette façon, je vais essayer ce que Jhoon Bey posté et de voir comment l'enfant d'action serait de travailler comme Jasen commenté, merci beaucoup!
  • fondamentalement, je n'ai aléatoire d'une image de fond qui doit être affiché à chaque fois qu'une nouvelle session web est créé (l'url de l'image persiste à travers une session web, mais chaque fois qu'une nouvelle session web est créé une autre url n'est générée), ce contexte est défini sur le <head> le fichier _layout
  • Je crois que la suggestion que Jasen m'a donné bien fonctionné, si j'ai bien compris, j'ai créé un enfant d'action qui, tout simplement, rend cette <style> contenant l'image de fond et l'a rendu comme un enfant d'action à l'intérieur de la _layout, je suppose que ça résout le problème de remplacer une mauvaise habitude par un autre EkoostikMartin remarqué, non?
  • À partir de ce que vous venez de dire, vous devriez utiliser JQuery.
  • tu veux dire pour demander le fichier d'arrière-plan à partir du serveur par le biais de l'ajax et de l'afficher? ne serait pas plus de travail que de l'affichage d'un enfant d'action? Je ne pense pas que le jQuery solution si
  • Vous trouverez probablement RenderAction va générer le même type de code en fait. Il suffit donc de ne de qui se trouve le mieux avec vous.
  • merci beaucoup pour la perspicacité, la RenderAction a fait le travail et je suppose que c'résolu le problème de la mauvaise pratique de problème indiqué par EkoostikMartin, je vous remercie beaucoup d'avoir pris de votre temps pour m'aider à sortir!
  • oui, mais il semble que vous avez compris alors que j'étais loin.