2011-05-15 7 views
1

pourquoi ai-je cette erreur "Le nom 'lblHelloWorld' n'existe pas dans le contexte actuel"? Comment je le répare?L'étiquette n'existe pas dans le contexte actuel

<%@ Page Language="C#" AutoEventWireup="True" Inherits="_Default"  Codebehind="Default.aspx.cs" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0  Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
<title>Hello, world!</title> 
</head> 
<body> 
<form id="form1" runat="server"> 
    <asp:ScriptManager ID="MainScriptManager" runat="server" /> 
    <asp:UpdatePanel ID="pnlHelloWorld" runat="server"> 
     <ContentTemplate> 
      <asp:Label runat="server" ID="lblHelloWorld" Text="Click the button!" /> 
      <br /><br /> 
      <asp:Button runat="server" ID="btnHelloWorld" OnClick="btnHelloWorld_Click" Text="Update label!" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</form> 

using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace ajaxTesting 
{ 
public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void btnHelloWorld_Click(object sender, EventArgs e) 
    { 
     lblHelloWorld.Text = "Hello, world - this is a fresh message from ASP.NET AJAX! The time right now is: " + DateTime.Now.ToLongTimeString(); 
    } 
} 
} 

J'ai essayé le nettoyage et rebuliding; supprimer le fichier designer.cs et le recréer mais ne servait à rien.

+0

Et si vous placez l'étiquette en dehors du UpdatePanel, cela fonctionne-t-il? –

+0

non, il ne fonctionne toujours pas – vatspoo

+0

Est-ce que la réponse acceptée [ici] (http://forums.asp.net/t/1006588.aspx/1?The+name+xxx+Does+Not+Exist+in+the+Current + Contexte) résout également votre problème? –

Répondre

1

Je pense que le problème dans votre fichier designer.cs.Essayez d'ajouter une référence manuellement pour cette étiquette dans le fichier designer.cs.

EDIT:

Le problème après révision à votre code est dans le name space.

Pour résoudre votre problème ::

Remplacez votre ligne par ceci:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ajaxTesting._Default" %> 
+1

J'ai vérifié. La référence est là dans le fichier – vatspoo

+0

éditez la réponse, essayez ceci. –

+1

hey cool! Tu as cloué le problème. merci :) – vatspoo

0

Étape 1:

Copie hors la forme ASPX, les fichiers CodeBehind et concepteur et recréez la forme à nouveau en copiant et collant.

Étape 2:

Si l'étape 1 ne résout pas: Dans Visual Studio, allez dans Edition -> Rechercher et remplacer -> Rechercher dans les fichiers et effectuer des recherches dans votre projet pour un contrôle avec le même prénom.

Étape 3

Fermez Visual Studio et tous les navigateurs. Arrêter temporairement IIS et accédez au dossier temporaire de fichiers ASP.NET (le chemin peut être différent sur votre machine):

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files

Commencez par supprimer tout ce qui se trouve dans le dossier du site, en commençant par le bas (car vous risquez d'obtenir des restrictions d'accès au dossier ACL). Redémarrez IIS et réessayez (après avoir essayé une ou les deux étapes précédentes).

0

La meilleure solution possible serait:

  1. Copiez toutes les lignes de code entre <body> and </body>
  2. Créer une nouvelle page aspx dans votre projet.
  3. Remplacez le tag <body> par celui que vous avez copié
  4. De même, copiez et collez le code du fichier .cs également.

Je pense que cela devrait résoudre votre problème.

0

Une autre possibilité que j'avais:

Si vous dupliquez le fichier .cs, par exemple: dupliquer « Default.aspx.cs », obtenir « Default.aspx - Copy.cs » (vous avez maintenant les deux les fichiers sur le même dossier), le résultat sera: le fichier apparaîtra dans la liste des fichiers du projet. Même en excluant le fichier copié du projet, mais laisser le fichier sur le même dossier ne résoudra pas le problème.

Afin d'éviter ce problème, retirez le fichier copié des dossiers du projet.

0

J'ai rencontré ce problème après l'importation de fichiers sources de quelqu'un d'autre. Après un moment, j'ai découvert que je n'avais pas de fichier designer.cs. J'ai suivi la solution de this. Surtout la partie sur "Convertir en application Web". Cela a fait l'affaire pour moi!

0

J'ai fait face à ce même problème sur le site Web asp.net (3.5) Dans mon cas, il y avait 2 copies du même fichier.

  1. Compute.aspx
  2. Compute_backup.aspx

J'exclu le fichier n ° 2 sur le site Web et cela a fonctionné pour moi.

Questions connexes