2010-09-09 25 views

Trả lời

6

Có khác nhau Chế độ Literal Literal.Mode

  1. passthrough: Nội dung của kiểm soát không được sửa đổi.
  2. Mã hóa: Nội dung của điều khiển được chuyển đổi thành chuỗi được mã hóa HTML.
  3. Chuyển đổi: Yếu tố ngôn ngữ đánh dấu không được hỗ trợ được xóa khỏi nội dung của điều khiển. Nếu điều khiển Literal được hiển thị trên một trình duyệt hỗ trợ HTML hoặc XHTML, nội dung của điều khiển không bị sửa đổi.

Hãy nhìn vào bài viết này MSDN http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.literal.mode.aspx

và hãy nhìn vào này thực hiện ví dụ Use ASP.NET's Literal control to its full potential

+0

câu trả lời hay nhất +1 .......;) – Azhar

+0

điều gì sẽ là mặc định nếu 'Chế độ' không được chỉ định? –

4

Nếu bạn dịch ngược System.Web.UI.WebControls.Literal.Render, bạn có được điều này :

protected internal override void Render(HtmlTextWriter writer) 
{ 
    string text = this.Text; 
    if (text.Length != 0) 
    { 
     if (this.Mode != LiteralMode.Encode) 
     { 
      writer.Write(text); 
     } 
     else 
     { 
      HttpUtility.HtmlEncode(text, writer); 
     } 
    } 
} 

Điều này tương tự với .NET 2.0 và .NET 4.0.

Vì vậy, bất kể tài liệu nào nói, không có sự khác biệt giữa Chuyển đổi (mặc định) và PassThrough.

Hãy sửa tôi nếu tôi sai. Có rất nhiều bài viết mà chỉ cần lặp lại tài liệu chính thức, nhưng tôi muốn xem một mẫu mã chứng minh rằng có một sự khác biệt.

+1

+1 Tôi đồng ý với bạn, 'Transform' và' PassThrough' được xử lý theo cùng một cách. –

Các vấn đề liên quan