2011-11-20 36 views
15

Vì vậy, trong .NET chúng tôi có ....NET "mã nugget khối"?

<%= 

<%: (new to .NET 4 - syntactic sugar for HTML encoding) 

<%# 

<%@ 

gì chính xác là những?

Và còn nữa không? Có một danh sách đầy đủ về những điều này và những gì họ đang ở đâu? Thật khó để biết những gì để thậm chí tìm kiếm - Tôi thậm chí không nghe về thuật ngữ "mã nugget khối" đến tối nay khi tôi phát hiện ra những gì <%: được.

Trả lời

9

Đây là các chỉ thị <%@. Để biết danh sách đầy đủ và tài liệu, hãy xem MSDN.

Khi sử dụng, chỉ có thể được đặt ở bất cứ đâu trong một aspx hoặc ascx tập tin, mặc dù thực tế giữa các ý kiến ​​để đưa chúng vào đầu tập tin. Mỗi chỉ thị có thể chứa một hoặc nhiều thuộc tính (được ghép nối với các giá trị) dành riêng cho chỉ thị đó.

<% là khối tập lệnh. Dưới đây là mô tả hay trong MSDN

Khối mã nhúng là mã máy chủ thực hiện trong giai đoạn hoàn thành của trang. Mã trong khối có thể thực hiện các câu lệnh lập trình và các chức năng gọi trong các lớp trang hiện tại .

Khối <%# được sử dụng bình thường trong điều khiển bị ràng buộc. Xem đoạn ngắn này article để biết thêm thông tin.

2

Tôi không chắc chắn nếu tất cả các thẻ WebForm này có tên tập hợp thích hợp, nhưng tất cả chúng phải được bao gồm trong ASP.NET Page Syntax.

Có một điều đó không có trong danh sách, ASP.NET Expressions:

<%$ expressionPrefix: expressionValue %> 
8

Họ được gọi là cốm mã. Họ cung cấp hướng dẫn khuôn khổ ASP.NET về cách xử lý câu lệnh trong các biểu tượng đó (<%%>). Cho đến khi tôi biết tên của nó, nó hơi khó hơn một chút để hỏi về nó trong cộng đồng. Bạn không chắc chắn về danh sách 'đầy đủ', nhưng có nhiều hơn một vài điều bạn đã chỉ định. Dưới đây là danh sách các cố định mã khác và cách sử dụng và ví dụ mẫu của chúng.

Symbol - Tên - Mô tả - ví dụ (Format)


<% --Standard đang nugget - Chỉ ra rằng các báo cáo sau đây là C# báo cáo. Sẽ phải tuân thủ các quy tắc cú pháp C#. ví dụ.

<% string[] cities = { ""London"", ""New York"", ""Paris"" }; 
string myCity = cities[new Random().Next(cities.Length)]; 
Response.Write(myCity);%> 

<%= --Content đang nugget - Tương tự như tiêu chuẩn cn, sự khác biệt là kết quả trả về là trực tiếp đưa vào phản ứng cho trình duyệt mà không cần phải sử dụng Response.Write. ví dụ.

<%=textBox.Text%> 

(KHÔNG ĐƯỢC KHUYẾN CÁO, bao gồm nguy cơ tấn công tiêm html.Nếu đầu vào trên hộp văn bản giống như "< button type = submit > Submit</button >", nó sẽ thêm một nút vào trang. Tất nhiên sẽ có xác nhận, nhưng hy vọng điểm là rõ ràng.)


<%: --Encoded đang nugget --Similar để <% =, nhưng câu trả lời là HTML mã hóa. ví dụ. Name is <%:textBox.Text%> (bất kể đầu vào là trên hộp văn bản, nó được hiển thị. Nếu đầu vào là một cái gì đó như "< button type = submit > Submit</button >", đầu ra sẽ là "Tên là <button type = submit> Submit</button>".


<%# đang --Data ràng buộc nugget --Chỉ định mã nugget liên kết dữ liệu, được sử dụng để chỉ đối tượng dữ liệu hiện tại. Chỉ có thể sử dụng với các điều khiển dữ liệu như repeater, v.v.

<%#: --Kết nối dữ liệu được mã hóa - Biểu thị mã ràng buộc dữ liệu được mã hóa nugget giá trị giới hạn dữ liệu được mã hóa, ví dụ:

<asp:Repeater ItemType = ""System.String"" SelectMethod = ""GetCities"" runat = ""server"> 
<ItemTemplate> 
<li > <%# Item % > </li> 
</ItemTemplate> 
</asp:Repeater> 

(Nếu mã hóa (<%#:) được sử dụng, nó sẽ hiển thị chữ mà không cần giải thích, khuyến khích.)"


<%$ --Property đang nugget - Dùng để tham khảo giá trị cấu hình, chẳng hạn như đối tượng quy định trong Web.config.

<asp:Literal Text = " < %$ AppSettings: cityMessage % > " runat = "server" /> 

(Lấy giá trị của chính cityMessage từ file config.)


<%@ chỉ --Page - này được sử dụng để cấu hình các Web Form (hoặc kiểm soát hoặc trang chủ, tùy thuộc vào loại chỉ thị. ví dụ.

<%@ Page.. <%@ Master 

Tất cả các đề cập thông tin và điện tử trên xamples là từ cuốn sách Pro ASP .NET 4.5 của Adam Freeman, Chương 12. Cuốn sách tuyệt vời imo.