Le nom '__o " n'existe pas dans le contexte actuel
Je viens d'installer Visual Studio 2015 et a ouvert mon asp .net projet sur lequel je travaillais. Je reçois de nombreuses erreurs (tous exactement la même chose) comme ci-dessous:
Erreur CS0103 Le nom de "__o " n'existe pas dans le contexte actuel
Eh bien en fait je n'ai pas de variables nommées __o et le code fonctionne comme un charme (erreur n'est pas valide), mais ce qui me dérange, c'est que je ne suis pas en mesure de voir mon code a vraiment une erreur car il se passe quelque part dans cette liste et que je doit vérifier l'ensemble de la liste.
- regardez là
- Concernant __o pourrait Également essayer de rechercher la solution pour elle. =/
Vous devez vous connecter pour publier un commentaire.
J'ai découvert que si je choisis Construire au lieu de Construire + IntelliSense les erreurs qui sont liées à l'IntelliSense) va disparaître.
Mise À Jour 1: La Raison
La raison que ce qui se passe est que pour les codes comme ceci:
Afin de fournir de l'IntelliSense dans <%= %> blocs au moment de la conception, ASP.NET génère cession temporaire __o variable et de la langue (VB ou C#) puis l'IntelliSense pour la variable. Ce qui est fait quand la page compilateur voit le premier <%= ... %> bloc. Mais ici, le bloc est à l'intérieur de la si, donc après si ferme, la variable est hors de portée. À la fin nous devons générer quelque chose comme ceci:
La solution de contournement consiste à ajouter un mannequin expression précoce dans la page. E. g.
Ce ne sera pas tout rendre, et il fera en sorte que __o est déclaré haut niveau dans la méthode Render, avant tout le potentiel de si (ou d'un autre établissement de la portée) de la déclaration.
Mise à jour 2: Se débarrasser de cette erreur sans perdre d'autres IntelliSense erreurs
Cliquez sur le bouton filtrer dans le coin supérieur gauche de l'erreur du panneau de la liste et décochez la CS0103 dont le code d'erreur pour l': Le nom de "__o " n'existe pas dans le contexte actuel et ces erreurs ne seront pas affichés plus et vous pouvez avoir d'autres IntelliSense les erreurs et les avertissements:
Après avoir lu les liens donnés dans les commentaires ci-dessus, il s'avère être de savoir comment intellisense poignées si les blocs.
Notant ci-dessus, L'échec's réponse n'est pas réellement faire beaucoup de mal, d'autres que d'occulter tous les intellisense d'erreur, ce qui serait de toute façon bien connues au moment de la construction.
De référence:
http://youku.io/questions/324366/asp-net-mvc-error-name-o-is-not-declared
https://msdn.microsoft.com/en-us/library/t8zbaa6f.aspx
http://forums.asp.net/p/923745/1266105.aspx
Ce qui a résolu ce problème de son coeur, pour moi, c'était pour ajouter un mannequin expression précoce dans la page. E. g. <%="" %>. Consultez ce lien pour plus d'explications: https://forums.asp.net/post/1263727.aspx
Déclarer la variable __o dans le code, comme ceci:
Assurez-vous de le mettre dans page Maître (si vous utilisez un).