Saya telah memprogram dalam ASP dan ASP.NET klasik, dan saya melihat tag berbeda di dalam markup untuk kode sisi server.
Saya baru-baru ini menemukan blog yang bagus di MSDN yang membahas perbedaan antara:
<%=
(persentase bersama dengan tanda sama dengan) dan<%#
(tanda persen dan hash / pound / octothorpe)
( <%#
dievaluasi hanya pada databind, dan <%=
dievaluasi saat render), tetapi saya juga melihat:
<%$
(tanda persen dan dolar) dan<%@
(tanda persen dan pada simbol).
Saya percaya <%@
banyak hal seperti rakitan dan mungkin <%$
memuat banyak hal dari file konfigurasi? Saya tidak terlalu yakin.
Saya hanya ingin tahu apakah ada yang bisa mengklarifikasi semua ini untuk saya dan mungkin menjelaskan mengapa penting untuk membuat begitu banyak tag berbeda yang tampaknya memiliki tujuan yang sama?
asp.net
server-tags
Harun
sumber
sumber
<%#
sering digunakan denganeval
, tetapi tidak harus: Anda dapat menggunakannya untuk menjalankan kode sisi server apa pun, asalkan Anda berjalanPage.DataBind()
pada halaman yang berisi atau halaman masternya. Tampaknya ini adalah satu-satunya pilihan Anda jika Anda ingin "menyuntikkan" kode sisi server ke atribut kontrol sisi server seperti<asp:TextBox
,<asp:LinkButton
atau bahkan a<input runat="server">
."<%=" "<%:""<%@" "<%#"
dan mengirim saya ke sini.Jawaban:
<% %>
- untuk kode inline (terutama aliran logika)<%$ %>
- untuk mengevaluasi ekspresi (seperti variabel sumber daya)<%@ %>
- adalah untuk arahan Halaman , mendaftarkan majelis, mengimpor ruang nama, dll.<%= %>
- kependekan dariResponse.Write
(dibahas di sini )<%# %>
- digunakan untuk ekspresi pengikatan data .<%: %>
- kependekan dari Response.Write (Server.HTMLEncode ()) ASP.net 4.0+<%#: %>
- digunakan untuk ekspresi pengikatan data dan secara otomatis HTMLEdikodekan.<%-- --%>
- untuk komentar sisi serversumber
Anda telah membahas 2 di antaranya (<% # dievaluasi hanya di databind, dan <% = dievaluasi saat render), dan jawaban untuk "
<%@
" adalah bahwa itu adalah arahan kompiler (mis., Hal-hal seperti apa yang Anda pakai baris perintah kompiler).Saya tidak tahu tentang "
<%$
".sumber