Frage

Wie der Titel sagt .. warum?

Ich weiß, warum es für die normalen ASP.NET -Steuerelemente erforderlich ist. Darauf gibt es zahlreiche Fragen.

Da Sie jedoch nur .NET -Steuerelemente (kein normales HTML -Markup) in den Hautdateien definieren können, warum ist das? runat="server" Immer noch für jede Kontrolle in der Hautdatei benötigt?

Es hat nichts mit Stilen oder Themen zu tun. Gibt es einen Grund, warum ich es noch nicht zu allen Steuerelementen in meinen Hautdateien hinzufügen muss? Weiß jemand, was damit "hinter den Kulissen" passiert?

War es hilfreich?

Lösung

Auch hier müssen Sie verstehen, wie Server -Seitensprachen funktionieren.

Alle ASP.NET-Tags werden in browser-verständliche HTML umgewandelt (ein Browser hat keine Vorstellung davon, was einu003Casp:button> ist zum Beispiel) von einem Server-Seite vor dem Prozessor, bevor die Seite gerendert wird. Dies bedeutet, dass alle Steuerelemente/Module/irgendetwas, das von ASP.NET bedient wird, nicht der Fall ist Nur html muss diese Attribute haben.

Ich wagte es, dass der Vorverarbeiter ursprünglich geschrieben wurde, um zu wissen, worauf er basierend auf dem Vorhandensein dieses Attributs arbeiten musste. Andernfalls müsste es jedes Tag verarbeiten, auch wenn es nichts tun würde. Es hätte geschrieben werden können, nur nach dem Namespace zu suchen, aber das müsste zusätzliche Verarbeitung erfordern.

EIN Hautdatei ist ein spezielles ASP.NET -Konzept für Tags, die im Framework definiert sind. Daher ist es sinnvoll, dass diese Tags den "Runat = Server" haben müssen. MS hätte eine spezielle Regel in ihren Pre-Processor schreiben können, z. B. "Wenn es sich um eine Hautdatei handelt, gehen Sie davon aus, dass es sich um alles ASP-Tags handelt" ... aber solche Regeln skalieren wirklich nicht. Außerdem sind sie schlechte Dokumentation.

Als Webentwickler sollten Sie verstehen, welche Ihrer Tags tatsächlich HTML sind und welche Convenience -Tags, die im Framework bereitgestellt werden. Das "runat=server" Attribut macht diese Abgrenzung explizit.

Sie können runat = "Server" zu einfachen HTML -Tags wie z.u003Cinput> Aber im Allgemeinen gibt es wenig Grund und es ist eine schlechte Praxis.

Für die Entwicklung der Portabilität möchten Sie möglicherweise in Betracht ziehen, sich von Hautdateien zu entfernen und CSS zu nutzen. Attribute sind sehr ausführlich für das Festlegen von Stilen, wodurch die beendeten Seiten größer werden (länger zum Laden, eine schlechte Benutzererfahrung) und nicht-semantisch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top