Tôi đã lập trình trong cả ASP và ASP.NET cổ điển và tôi thấy các thẻ khác nhau bên trong đánh dấu cho mã phía máy chủ.
Gần đây tôi đã bắt gặp một blog tốt về MSDN có sự khác biệt giữa:
<%=
(tỷ lệ phần trăm cùng với dấu bằng) và<%#
(dấu phần trăm và hàm băm / pound / octothorpe)
(chỉ <%#
được đánh giá tại databind và <%=
được đánh giá khi kết xuất), nhưng tôi cũng thấy:
<%$
(phần trăm và ký hiệu đô la) và<%@
(ký hiệu phần trăm và ký hiệu).
Tôi tin rằng <%@
tải những thứ như tập hợp và có lẽ <%$
tải những thứ từ tập tin cấu hình? Tôi không chắc lắm.
Tôi chỉ tự hỏi liệu có ai có thể làm rõ tất cả những điều này cho tôi không và có thể giải thích tại sao điều quan trọng là tạo ra nhiều thẻ khác nhau dường như có cùng mục đích không?
<%#
thường được sử dụng với eval
, nhưng nó không phải: bạn có thể sử dụng nó để chạy bất kỳ mã phía máy chủ nào, miễn là bạn chạy Page.DataBind()
trên trang chứa hoặc trang chính của nó. Có vẻ như đây là tùy chọn duy nhất của bạn trong trường hợp bạn muốn "tiêm" mã phía máy chủ vào các thuộc tính của các điều khiển phía máy chủ <asp:TextBox
, <asp:LinkButton
hoặc thậm chí là a <input runat="server">
.
"<%=" "<%:""<%@" "<%#"
và nó đã gửi tôi ở đây.