2009-02-01 14 views
1

(WAS: ASP.Net codebehind ne pas trouver des contrôles sur la page web)page Designer ne rafraîchie lorsque les contrôles sont déposés sur le formulaire

J'utilise VS 2008.

Je ne sais pas quel interrupteur secret j'ai besoin de retourner, ou quel fil de déclenchement j'ai trébuché accidentellement, mais la dernière forme que j'ai créée dans mon projet se comporte très mal: le codebehind est apparemment incapable de trouver aucun des contrôles que j'ai mis sur le formulaire . Le fichier codebehind existe, mais génère des erreurs de compilation sur toutes les références aux contrôles déclarés sur le formulaire.

L'indice le plus évident est que dans le balisage de la forme, la première ligne est:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="UserSignature.aspx.vb" 
    Inherits="EEI_App.UserSignature" %> 

et l'IntelliSense a souligné toute la ligne d'abord, me donner un peu stupide « ne pouvait pas charger le fichier ou l'assemblage "message, qu'il ne peut pas trouver une DLL complètement indépendante qui est clairement et visiblement dans mon dossier de l'application, avec la référence correctement mis en place. Dans un premier temps, l'Intellisense soulignait uniquement le paramètre "CodeBehind", indiquant "Fichier UserSignature.aspx.vb introuvable". - puis pour une raison quelconque, il a commencé avec cet autre message sur la DLL, aussi.

Chaque autre forme de mon projet compile et fonctionne correctement, et il n'y a pas de différences évidentes entre ce formulaire et toute autre forme.

J'ai essayé d'ouvrir et de fermer Visual Studio; J'ai essayé de redémarrer - rien ne fait de différence. Chaque nouvelle forme que j'ajoute à mon projet ne peut pas communiquer avec son propre codebehind - à partir du moment de la création du nouveau fichier, le balisage me donne l'erreur "Fichier 'NewFile.aspx.vb' n'a pas été trouvé"!

Des idées?

Merci


Je pense que je refermait sur le problème. @MatthewMartin, vous êtes certainement le plus chaud jusqu'à présent.

Il semble que form.aspx.designer.vb ne soit pas actualisé pour une raison quelconque lorsque j'abandonne des contrôles sur le formulaire. Je n'ai toujours aucune idée de pourquoi c'est, mais au moins nous nous réchauffons!


OK, c'est vraiment le problème maintenant, et je l'ai renommé la question de réfléchir à ceci: la question fondamentale est que ma forme de form.aspx.designer.vb n'est pas en cours d'actualisation lorsque je laisse tomber des contrôles sur la forme. Des idées au moins pour une solution de contournement - comment forcer le concepteur à actualiser?

Merci!

Répondre

1

OK, j'ai trouvé ma réponse:

Commit tout le code de travail pour le contrôle des sources, séduiront l'arbre dev, obtenir dernière version.

Tout à coup, tout fonctionne à nouveau. Et il a également résolu my other problem of today.

Je vais donner le crédit pour la réponse à tous ceux qui peuvent travailler ce commutateur secret que je renversé en soufflant loin de mon arbre dev et recommencer propre ... :)

1

L'avez-vous renommée? Changé l'espace de nom de base/projet? En particulier, regardez EEI_App.UserSignature - est-ce le bon nom?

Pour simplifier, pensez à recréer la page, la copie du balisage, etc.

+0

Je ne l'ai pas fait quoi que ce soit hors de l'ordinaire. Tout nouveau fichier que je crée va immédiatement dans cette condition d'erreur, sans même ajouter de contrôles au formulaire. Pour cette raison, recréer le formulaire n'aide pas un peu. –

1

Essayez ceci:

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="UserSignature.aspx.vb" Inherits="EEI_App.UserSignature" %> 
+0

Je ne vois aucun changement dans mon code d'origine autre que la suppression d'un saut de ligne. Je l'ai essayé de toute façon (je suis désespéré), et comme prévu, il n'a fait aucune différence ... –

+0

la différence est la conversion "CodeBehind -> CodeFile". – Canavar

+0

Oh, OK - et bien, peu importe, ça n'a fait aucune différence ... :( –

1

Est-il possible que vous avez perdu la référence du système.Web (ou une autre DLL importante, peut-être que dll vous avez mentionné)?
Je rencontre généralement des problèmes similaires lorsque j'essaie de charger une page ou un contrôle utilisateur dans une solution dll. En fait, deux fois nous avons dû charger les fichiers que nous avons reçus dans un nouveau projet, et cela a résolu le problème.

2

Vous pouvez forcer la régénération de la page aspx.vb.designer en supprimant le texte des contrôles et en le replaçant immédiatement en place.

Vérifiez également que le code derrière la page a une classe de UserSignature et un espace de nom de EDI_App. En outre, selon que vous utilisez une application Web ou un projet Web, l'espace de noms par défaut peut être différent. Vous pouvez vérifier en créant un nouveau fichier et en regardant et ce que le modèle par défaut entre la directive page et la déclaration de nom de classe dans le code derrière.

Enfin, si cela était un converti 1.1 application ou une application 2.0 où le code derrière ne dit pas

classe partielle

, alors vous serez responsable de la déclaration de tout contrôle les références.

+0

De toute évidence se réchauffer - voir ma mise à jour à la question pour plus d'indices –

1

J'ai eu ce même problème le vendredi . Il s'avère que VS2008 n'est pas assez intelligent (en utilisant VSS comme contrôle de source - je sais, mais c'est ce que le client a) pour extraire les aspx, aspx.vb et designer.vb en même temps dans certains cas. Dans mon cas, je recevais toutes sortes de comportements étranges, et bien sûr Visual Studio, en essayant d'être "utile" n'a aucun moyen de vérifier le designer.vb.

Solution est de vérifier la dernière page dans, puis déposez un contrôle sur la page et enregistrez (ou supprimer un contrôle -. Toute action qui fera l'designer.vb pour obtenir mis à jour)

+0

En fait, je n'utilise pas VSS - J'utilise SourceGear Fortress, dans CVS mode ... tous mes fichiers sont inscriptibles Le problème est exactement cela - que le fichier du concepteur n'était toujours pas mis à jour ... –

+0

Avez-vous vérifié que tout était en fait inscriptible? Souffler, et obtenir une nouvelle copie, serait certainement résoudre tous les problèmes d'autorisations. – chris