Question

J'ai un site web dans asp.net qui utilise une page maître.Dans cette page principale, j'ai un contrôle multiview avec une vue a tout le contenu pour les pages de contenu et d'un point de vue qui a une certaine contenu local à la page où j'affiche les messages d'erreur de toutes les pages de contenu.

Dans cette erreur vue que j'ai un asp.net contrôle Label qui affiche les messages d'erreur.Habituellement l'étiquette fonctionne très bien, mais, dans quelques cas, l'étiquette est null, ce qui rend une exception NullReferenceException.Maintenant, j'ai géré ce cas en vérifiant si l'étiquette est null, avant de l'utiliser, mais tout de même ma question est la suivante:

Pourquoi est-ce label est nulle?Quelles sont les circonstances qui peuvent générer ce?

EDIT: Dans la page principale, j'ai une méthode appelée SetErrorText qui prend une chaîne et définit l'étiquette.Je suis l'appel de cette méthode à partir du contenu des pages méthode Page_Load, ce qui en général fonctionne très bien.Mais dans tous les deux cas (que j'ai découvert à ce jour), le label est initialisé, et rien ne sépare ces deux cas de tous ceux qui travaillent.

Aussi, toutes les autres commandes dans la page principale sont initialisées, telle que la Vue de contrôle que les maisons de l'étiquette.

Lorsque le Document d'une page de contenu autour de rouleaux, le maître de la page doit être remplie.

Était-ce utile?

La solution

Il semble que le problème était celui de la médiocrité.Quelqu'un avait oublié de supprimer l'auto-generated Content-contrôles Visual Studio jette sur toutes les pages de contenu où la page principale a un ContentPlaceHolder de contrôle.

Si une page de contenu est un Contenu-contrôle toutes les commandes qui sont placés dans le ContentPlaceHolder de contrôle sur la page principale sera nulle, il me semble.

Autres conseils

Quelle méthode sur la page principale êtes-vous accéder à l'étiquette de?Selon le stade du cycle de vie de page, l'étiquette de contrôle peut ne pas avoir encore été chargé

Pourriez-vous y accéder avant la création?Consultez la page du cycle de vie: http://msdn.microsoft.com/en-us/library/ms178472.aspx

J'ai eu une erreur similaire.Dans mon cas, cela a été causé par .NET compilateur wierdness liés à la contrôle de concepteur de fichier.Même si le concepteur fichier a les contrôles définis correctement, de le supprimer, re-générer et de reconstruction (assurez-vous de reconstruire, ne pas seulement "faire").Voir l'en-tête de réponse ici pour savoir comment faire régénérer le fichier concepteur:

Comment faites-vous la force de Visual Studio pour régénérer le .concepteur de fichiers pour aspx/ascx fichiers?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top