2010-06-01 10 views
4

Stupide lundi matin question de base/noob ...Sous ASP.Net MVC v1, Page_Load est-il appelé?

Est-ce que Page_Load est généralement appelé pour une application ASP.Net MVC?

Nous avons juste une page, Default.aspx.cs - qui ne semble être appelé à/et non pour toutes les sous-chemins, donc je ne pense pas qu'il est généralement appelé ...

Merci pour la répondre - pour clarifier, ce que je veux faire dans le Page_Load est les contrôles de sécurité, c'est à dire est connecté/autorisé pour la page ... On dirait que je devrais faire un attribut personnalisé et le mettre sur une classe de base Controller.

Merci, Chris

+1

Le Default.aspx.cs inclus est juste un fudge pour obtenir certaines versions d'IIS fonctionnant avec MVC. – UpTheCreek

Répondre

9

En théorie, il est, car un inherrits vue de ViewPage, qui inherrits les événements de Page. Cependant, ce sera l'événement Load (il ne sera probablement pas automatiquement connecté à Page_Load).

Cependant, vous certainement ne voulez pas faire cela! Dans une application MVC normale, il n'y a pas de concept de code derrière. Les vues (ou quelque chose derrière elles) ne doivent pas contenir de logique. Cela devrait aller dans votre contrôleur dans de petites applications, ou déplacé dans d'autres couches dans les grandes applications. La seule raison pour laquelle vous pourriez vouloir faire ceci est l'intégration avec certaines applications non-MVC existantes, mais même alors, c'est très discutable.

MISE À JOUR:

Pour plus de sécurité, oui, vous êtes sur la bonne voie avec vos autres suggestions. (Vous certainement pas voulez utiliser Page_Load pour cela). MVC fournit le AuthorizationAttribute prêt à l'emploi. Vous pouvez l'appliquer à des classes de contrôleur (ou à des classes de base) et à des actions individuelles, et vous pouvez spécifier des rôles autorisés. C'est bien pour la plupart des scénarios. Si vous voulez faire quelque chose de personnalisé, vous pouvez créer un attribut personnalisé.