Kontrol biasa tidak bisa digunakan di area head halaman web, namun terkadang sangat penting, seperti judul, kata kunci, dan deskripsi, yang mungkin berbeda di setiap halaman isi?
Metode 1: Apa yang dapat dilakukan asp, tentu saja dapat dilakukan oleh asp.net. Selama Anda menulis seluruh halaman menggunakan Response.Write(), tidak ada yang tidak dapat dikustomisasi anggota tertentu%">". Namun yang jelas, hal ini tidak bisa memanfaatkan karakteristik .net.
Metode 2: Gunakan atribut unik asp.net: runat="server", tetapkan id untuk judul, lalu jadikan variabel server, lalu Anda dapat mengatur teksnya. Tapi html yang keluar seperti ini juga akan memiliki ID di dalamnya, yang sangat tidak enak untuk dilihat.
Metode 3: Gunakan kontrol literal, meja depan: <HEAD>
<asp:Literal ID="lt_title" Runat="server" />
<asp:Literal ID="lt_keywords" Runat="server" />
<asp:Literal ID="lt_descri" Runat="server" />
</HEAD>Backend: private void Page_Load(pengirim objek, System.EventArgs e)
{
lt_title.Text = "<title>Judul</title>";
lt_keywords.Text = "<meta name="kata kunci" content="kata kunci">";
lt_descri.Text = "<meta name="deskripsi" content="deskripsi">";
}
Ini pada dasarnya sempurna.
Selain itu, halaman saya menggunakan banyak kontrol pengguna, dan kontrol pengguna ini memiliki tingkatan. Judul halaman dapat ditentukan oleh kontrol sub-pengguna dalam kontrol pengguna, dan tingkat kontrol pengguna yang bersarang tidak tetap. Lalu bagaimana cara mengaturnya secara dinamis?
Di halaman beranda, buat kelas dasar kontrol pengguna dan tambahkan metode publik ke dalamnya:
public void SetTitle(string title)
{
SetLiteralText("lt_title", string.Format("<title>{0}</title>", judul));
}Tambahkan metode pribadi lainnya:
kekosongan pribadi SetLiteralText (id string, teks string)
{
Harafiah lt = nol;
Kontrol ctrl = ini;
Mengerjakan
{
ctrl = ctrl.Induk;
(
ctrl != null && ctrl.GetType().Nama Lengkap != "Sistem.Web.UI.HtmlControls.HtmlForm" );
{
lt = ctrl.FindControl(id) sebagai Literal;
jika(lt != nol)
lt.Teks = teks;
}
}
Dengan cara ini, kontrol pengguna Anda hanya perlu mewarisi dari kelas dasar ini, dan kemudian memanggil base.SetTitle("title") ketika Anda ingin mengatur judul halaman, dan tugas selesai. Untuk tag lain di area head, prinsipnya sama dengan pengaturan judul.