5

Sûrement le fait qu'ils sont déclarés commençant par "< asp:" est suffisant pour déduire qu'ils sont des contrôles serveur? Ou est-il juste inclus pour l'exhaustivité (ils ressemblent donc à la déclaration de contrôle du serveur de < entrée runat = "serveur" par exemple). Ou y a-t-il une raison particulière?Pourquoi les déclarations de contrôle de serveur ASP.Net requièrent-elles l'attribut runat = "server"?

Cela me fait toujours des bugs que le compilateur me dise que je l'ai manqué quand je le fais accidentellement. Un peu comme la pensée derrière "var" - si le compilateur sait ce que c'est .. pourquoi s'embêter à m'attendre à l'énoncer?

+0

Check it out http://stackoverflow.com/questions/304290/asp-net-why-runatserver – Kaz

Répondre

8

Taken de this forum thread:

Internet Explorer prend en charge les comportements DHTML .

[La syntaxe asp: control] ne signifie pas le contrôle du serveur. Vous pouvez créer un composant DHTML client disposant d'un espace de noms et exécuter sur l'ordinateur client. En outre, namespaces sont autorisés en XHTML et techically vous pouvez utiliser l'espace de noms asp pour quelque chose d'autre sur un client, si vous souhaitez . Runat = "serveur" empêche conflit d'espace de noms. Si l'élément n'a pas l'attribut runat = "server", il sera envoyé au navigateur client inchangé. Par conséquent, vous pouvez également utiliser les composants HTML (HTC) dans les pages ASP.NET.

Jetez un oeil ici

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

Mike Schinkel aussi has a blog post Raisons pour lesquelles runat = serveur est nécessaire.

+0

J'aurais fermé ma question en double (voir aussi ci-dessous) mais ça ne me laissera pas. Des idées? – Ray

Questions connexes