Geçerli bağlamda adı 'controlname' yok
Bir web uygulaması var şu an üzerinde çalıştığım (ASP.NET 2.C ile 0# kullanarak VS2005). Her şey iyi çalışıyordu, ve aniden ben hata alıyorum:
Error 1 The name 'Label1' does not exist in the current context
ve sayfanın codebehind benim bir kontrol ederdim her zaman için sıralama 43 Diğerleri.
Bu sadece 1 sayfa için oluyor. Ve eğer codebehind denetimleri kabul ederek değil ama. Başka ilginç bir şey ıntellisense denetimler ya.. açmıyor
Ben denedim temiz çözüm dosyası, sil n dosya, dışarıda dosyaları projeden sonra yeniden onları, kapat VS ve yeniden ve hatta yeniden başlatın Bilgisayarım, ama bunların hiçbiri çalışmış.
CEVAP
Bu eski bir soru olduğunu biliyorum, ama başkalarının işine yarayabilir diye benzer bir sorunu vardı ve benim çözüm göndermek istedim. Kullanmayı öğrenirken sorunla karşılaştım:
- ASP.NET 3.5
- C#
- VS2008
AJAX-etkin bir sayfa (eğer bu size tanıdık değilse ScriptManager nesnesi ile ilgili bir eğitim içine bakmak) oluşturmak için çalışıyordum. Denedim erişim HTML elemanlarının sayfa üzerinden C# kodu, ve ben almak bir hata belirten tanımlayıcı HTML ID değeri "yoksa, geçerli bağlam."
Bunu çözmek için, aşağıdaki: yapmak zorundaydım
1. Sunucuda çalıştırın
C değişken olarak HTML öğesi erişmek için# kodu aşağıdaki değeri SEO HTML dosyası öğe etiketi yerleştirilmelidir:
runat="server"
Visual Studio IDE Araç kutusunda bazı nesneleri otomatik olarak eklemek için bu değeri içermez.
2. Otomatik olarak oluşturulan C yeniden# dosya:
- Çözüm Gezgini'nde, SEO dosyası altında iki dosya olmalıdır: *.SEO.cs ve *.SEO.tasarımcı.cs. Designer dosyası otomatik oluşturulur.
- Sil mevcut *.SEO.tasarımcı.cs dosyası. Sadece silmek emin oluntasarımcıdosya. C içerdiğinden diğeri silmeyin# sayfa için kod.
- Sağ üst SEO dosyası. Pop-up menüden seçinWeb Uygulama dönüştürmek.
Şimdi unsuru C erişilebilir olmalıdır# kod dosyası.