5

Z pewnością fakt, że zostały one zadeklarowane jako "< asp:" wystarcza, aby wywnioskować, że są kontrolkami serwera? Czy jest to po prostu dołączone do kompletności (więc wyglądają podobnie do deklaracji kontroli serwera < input runat = "server" na przykład). Czy jest jakiś szczególny powód?Dlaczego deklaracje kontrolne serwera ASP.Net wymagają atrybutu runat = "server"?

Po prostu zawsze budzi mnie to, że kompilator mówi mi, że przegapiłem to, gdy robię to przypadkowo. Coś jak myślenie kryjące się za "var" - jeśli kompilator wie, co to jest ... po co zawracać sobie głowę, spodziewając się, że to powiem?

+0

Sprawdź to http://stackoverflow.com/questions/304290/asp-net-why-runatserver – Kaz

Odpowiedz

8

Zrobione z this forum thread:

Internet Explorer obsługuje DHTML zachowań.

[The asp: składnia sterująca] nie oznacza kontroli serwera . Można utworzyć klienta DHTML komponent o przestrzeni nazw i wykona on numer na komputerze klienta. Ponadto dozwolone są przestrzenie nazw w XHTML i pod względem technicznym możesz użyć przestrzeni nazw asp przy dla czegoś innego na kliencie, jeśli chcesz. Runat = "server" zapobiega konfliktowi przestrzeni nazw . Jeśli element nie ma atrybutu runat = "server", będzie to wysłane do przeglądarki klienta bez zmian. W związku z tym można również używać komponentów HTML (HTCs) na stronach ASP.NET.

Sprawdźcie tutaj

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

Mike Schinkel także has a blog post odkrywania dlaczego runat = server jest konieczne.

+0

Zamknęłbym moje pytanie jako duplikat (zobacz także poniżej), ale to mi nie pozwala. Jakieś pomysły? – Ray