5

Chắc chắn thực tế là chúng được khai báo bắt đầu bằng "< asp:" là đủ để phỏng đoán chúng là các điều khiển máy chủ? Hoặc là nó chỉ bao gồm cho đầy đủ (để họ trông giống như tờ khai kiểm soát máy chủ của < đầu vào runat = "server" chẳng hạn). Hoặc là có một số lý do đặc biệt?Tại sao ASP.Net tờ khai kiểm soát máy chủ đòi hỏi các runat = "server" thuộc tính?

Nó luôn luôn lỗi tôi rằng trình biên dịch nói với tôi tôi đã bỏ lỡ nó khi tôi làm như vậy vô tình. Loại giống như những suy nghĩ đằng sau "var" - nếu trình biên dịch biết nó là gì .. tại sao bận tâm mong đợi tôi để nhà nước không?

+0

Kiểm tra xem http://stackoverflow.com/questions/304290/asp-net-why-runatserver – Kaz

Trả lời

8

Taken từ this forum thread:

Internet Explorer hỗ trợ DHTML hành vi.

[Cú pháp điều khiển asp] không có nghĩa là điều khiển máy chủ . Bạn có thể tạo client DHTML thành phần có namespace và sẽ chạy trên máy client. Ngoài ra, không gian tên được cho phép trong XHTML và về mặt công nghệ, bạn có thể sử dụng không gian tên asp cho một thứ khác trên máy khách, nếu bạn muốn. Runat = "server" ngăn chặn xung đột không gian tên . Nếu phần tử không có thuộc tính runat = runat = "server", nó sẽ là được gửi đến trình duyệt của khách hàng không thay đổi. Vì vậy, bạn có thể sử dụng các thành phần HTML (HTCs) trong các trang ASP.NET là tốt.

Có một cái nhìn ở đây

http://msdn.microsoft.com/workshop/author/behaviors/howto/creating.asp http://msdn.microsoft.com/workshop/author/behaviors/overview.asp

Mike Schinkel cũng has a blog post khám phá lý do tại sao runat = server là cần thiết.

+0

Tôi đã đóng câu hỏi của mình dưới dạng bản sao (cũng thấy bên dưới) nhưng nó sẽ không cho phép tôi. Bất kỳ ý tưởng? – Ray