Hal yang memalukan adalah sebelum liburan Festival Musim Semi, saya menulis sepotong kode. Saya tidak tahu mengapa, ASPX dapat memuat kode di ASCX.cs, tetapi tidak dapat memuat file sumber di ASCX turun, saya tidak bisa. Setelah menyelesaikan masalah ini, saya kembali bekerja hari ini dan menemukan bahwa masalah tersebut disebabkan oleh kesalahan penulisan perintah @Register di ASPX.
Cara yang benar harus ditulis sebagai berikut:
<%@ Daftar TagPrefix="myTagPrefix" TagName="ConfigNavigation" Src="/Controls/ConfigNavigation.ascx" %> Tapi saya menulisnya sebagai berikut:
<%@ Daftar TagPrefix="myTagPrefix" Namespace="MyWEB.Controls" Majelis="MyWebProject" %>Cara penulisan yang terakhir hanya akan memuat kelas yang sesuai dengan file cs, tetapi tidak konten di ascx, sehingga muncul Masalah saya temui di sini.
Berikut ini ringkasan beberapa cara menulis perintah @Register, yang dikompilasi dengan mengacu pada http://msdn.microsoft.com/zh-cn/library/c76dd5k1.aspx :
<%@ Daftarkan tagprefix="tagprefix" namespace="namespace" assembly="assembly" %>
<%@ Daftarkan tagprefix="tagprefix" namespace="namespace" %>
<%@ Daftarkan tagprefix="tagprefix" tagname="tagname" src="pathname" %>Setiap atribut dijelaskan sebagai berikut:
awalan tag
Alias arbitrer yang memberikan referensi singkat ke namespace tag yang digunakan dalam file yang berisi arahan.
namespace Namespace kontrol kustom yang sedang didaftarkan.
tagname Setiap alias yang terkait dengan kelas. Properti ini hanya digunakan untuk kontrol pengguna.
assembly Majelis yang berada di namespace yang terkait dengan atribut tagprefix.
Nama Majelis tidak boleh menyertakan ekstensi file. Perhatikan juga bahwa jika atribut Majelis tidak ada, penganalisis ASP.NET mengasumsikan bahwa kode sumber ada di folder App_Code aplikasi. Jika Anda ingin mendaftarkan kode sumber kontrol pada halaman tanpa mengkompilasinya, letakkan kode sumber di folder App_Code. ASP.NET secara dinamis mengkompilasi file sumber di folder App_Code pada saat run time.
Lokasi (relatif atau absolut) file kontrol pengguna ASP.NET deklaratif yang terkait dengan src dan pasangan tagprefix:tagname.
Nilai atribut src dapat berupa jalur relatif atau jalur absolut dari direktori akar aplikasi ke file sumber kontrol pengguna. Untuk kemudahan penggunaan, disarankan untuk menggunakan jalur relatif. Misalnya, asumsikan bahwa semua file kontrol pengguna aplikasi Anda disimpan di subdirektori Usercontrol dari direktori akar aplikasi. Untuk menyertakan kontrol pengguna dalam file Usercontrol1.ascx, sertakan yang berikut ini dalam arahan @Register:
Src="~usercontrolusercontrol1.ascx" Karakter tilde (~) mewakili direktori root aplikasi