Je sais que c'est une vieille question, mais j'ai eu un problème similaire et je voulais poster ma solution au cas où elle pourrait profiter à quelqu'un d'autre. J'ai rencontré le problème en apprenant à utiliser :
J'essayais de créer une page compatible AJAX (consultez un tutoriel sur l'utilisation de l'objet ScriptManager si vous n'êtes pas familier avec cela). J'ai essayé d'accéder aux éléments HTML de la page via le code C#, et j'ai obtenu une erreur indiquant que l'identifiant de la valeur HTML ID "n'existe pas dans le contexte actuel".
Pour le résoudre, j'ai dû procéder comme suit :
1. Exécution sur le serveur
Pour accéder à l'élément HTML en tant que variable dans le code C#, la valeur suivante doit être placée dans la balise de l'élément HTML dans le fichier aspx :
runat="server"
Certains objets de la boîte à outils de l'EDI Visual Studio n'incluent pas automatiquement cette valeur lorsqu'ils sont ajoutés à la page.
2. Régénérez le fichier C# généré automatiquement :
- Dans l'explorateur de solutions, sous le fichier aspx, il devrait y avoir deux fichiers : *.aspx.cs et *.aspx.designer.cs. Le fichier du concepteur est généré automatiquement.
- Supprimez le fichier *.aspx.designer.cs existant. Veillez à ne supprimer que le fichier designer fichier. Ne supprimez pas l'autre, car il contient votre code C# pour la page.
- Faites un clic droit sur le fichier aspx parent. Dans le menu contextuel, sélectionnez Convertir en application Web .
Maintenant l'élément devrait être accessible dans le fichier de code C#.
2 votes
La bonne réponse à cette question est dans la réponse trouvée ici : stackoverflow.com/a/1981228/168703
1 votes
Vérifiez également l'espace de nom dans le designer.cs ; parfois, après avoir renommé une page aspx, l'espace de nom est simplement supprimé du designer.cs.
0 votes
Cela peut se produire après avoir copié les balises du contrôle à partir d'un autre fichier .aspx. J'ai supprimé les balises copiées et écrit manuellement les balises du contrôle et l'erreur a disparu.