Ralat nama kawalan ASP.NET: Memahami "konteks semasa"
Dalam pembangunan aplikasi web ASP.NET C#, adalah perkara biasa untuk menemui mesej ralat yang membingungkan: "Nama '[nama kawalan]' tidak wujud dalam konteks semasa".
Fahami "konteks semasa"
"Konteks semasa" merujuk kepada skop di mana pembolehubah atau pengecam boleh diakses. Dalam ASP.NET, kawalan wujud dalam hierarki tertentu yang mentakrifkan konteksnya. Apabila kawalan diakses dari halaman belakang kod, namanya mesti dikenal pasti dalam konteks itu.
Kemungkinan sebab ralat
-
Atribut 'runat=server' tiada: Elemen HTML mesti mempunyai atribut 'runat=server' untuk boleh diakses daripada kod sisi pelayan.
-
ID kawalan yang salah: Pastikan nama kawalan yang digunakan dalam kod betul-betul sepadan dengan ID yang diberikan kepada kawalan dalam penanda ASPX.
-
Fail pereka bentuk tiada atau rosak: Fail pereka bentuk (*.aspx.designer.cs) dijana secara automatik dan mengandungi kod untuk kawalan terdedah. Memadam atau merosakkan fail ini boleh menyebabkan ralat.
-
Ruang nama salah: Pastikan anda menggunakan ruang nama yang betul untuk merujuk kawalan.
Langkah Penyelesaian Masalah
-
Sahkan atribut "runat=server": Tambah atribut "runat=server" dalam penanda ASPX untuk elemen HTML yang terjejas.
-
Semak ID kawalan: Semak dua kali ID kawalan dalam kod dan penanda anda.
-
Buat semula fail pereka: Padam fail *.aspx.designer.cs, kemudian klik kanan fail ASPX induk dan jana semula menggunakan pilihan "Tukar ke Aplikasi Web".
-
Sahkan ruang nama: Pastikan anda merujuk ruang nama kawalan dengan betul dalam kod anda.
-
Mulakan semula Visual Studio: Kadangkala, hanya memulakan semula IDE menyelesaikan masalah.
Atas ialah kandungan terperinci Mengapa Kawalan ASP.NET Saya Tidak Wujud dalam Konteks Semasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!