Warum wickelt asp.net die Seite in ein Formular ein?

7

Ich bin ein PHP-Entwickler, der an ASP.net-Projekten arbeiten muss und ich frage mich, warum jede Seite in ein Formular eingepackt ist. Das ergibt für mich keinen Sinn.

Also, was ist mit allen versteckten Eingabefeldern, besonders dem "View State".

    
Emily Laguna 14.06.2010, 14:52
quelle

4 Antworten

11

ASP.Net versucht, es so zu machen, dass die Programmierer vorgeben können, dass das Web eine zustandsbehaftete Plattform ist und dass es sich wie eine Desktop-Anwendung verhält. Der ViewState ist im Grunde ein serialisierter Block des Zustandes der Seite, als er erzeugt wurde. Wenn die Seite zurückgesendet wird, wird das serverseitige Modell mit den Werten in ViewState initialisiert, und dann werden die neuen Werte aus dem gebuchten Formular angewendet.

Der Teil, ein anständiger ASP.Net-Programmierer zu werden, lernt, wann ViewState zu verwenden ist und nicht, weil der Standard ist, es überall zu verwenden, was eine Menge Aufblähung in der heruntergeladenen Seite verursacht.

    
Chris Pitman 14.06.2010, 14:58
quelle
5

Jede ASP.NET-Seite ist in ein <form> -Element eingebettet, weil sich das gesamte Framework um POST-Befehle dreht.

ASP.NET bietet "Web-Steuerelemente", die objektorientierte Abstraktionen von HTML-Elementen (und in einigen Fällen auch Elementgruppen) sind - in Ihrem serverseitigen Code können Sie Befehle an verschiedene Ereignisse in Websteuerelementen anhängen (z. B. , Button.OnClick , TextBox.OnChanged ) - das Framework verbindet diese mit einer Kombination aus versteckten Feldern und generiertem Javascript. Das generierte Javascript setzt in der Regel ein verstecktes Feld mit wenigen Werten, um anzuzeigen (zum Beispiel), welches Steuerelement den Post und die Befehlsargumente (falls zutreffend) ausgelöst hat, und sendet dann das Formular.

ViewState ist eine Technik, die vom Framework zum Serialisieren des Clientstatus verwendet wird. Es ist eine Alternative zur intensiven Nutzung der Sitzung, da größere HTML-Payloads für einen geringeren Speicherbedarf auf dem Server gehandelt werden.

    
Jeff Sternal 14.06.2010 15:02
quelle
3

Alles in ASP.NET (ASPX-Seiten) funktioniert von Buchungsdaten.

Dies bedeutet, dass alles, was Sie mit einer serverseitigen Aktion auf der Webseite platzieren, zu einem "Zurücksetzen" auf sich selbst führt. Der Post-Back enthält Informationen wie "Was gerade passiert ist" und einige Informationen, die der Webseite helfen, den Status beizubehalten (was Webseiten traditionellerweise nicht tun). Der Ansichtszustand ist Teil dieser Aufgabe, den Zustand zu erhalten.

Wenn Ihnen die Art und Weise, wie aspx-Seiten versuchen, Webseiten in zustandsbehaftete Anwendungen im Formatstil zu verwandeln, nicht gefällt, können Sie das ASP.NET MVC-Framework ausprobieren, mit dem das Web wie vorgesehen funktioniert!

    
Fenton 14.06.2010 15:00
quelle
2

ASP.NET WebForms-Engine erstellt eine stateful Abstraktion über statusloses HTTP.

Das Schlüsselobjekt ist eine Serverseite. Steuert Feuerungsereignisse, die serverseitig verarbeitet werden. Controls behalten ihre Zustände (normalerweise Eingabewerte) zwischen Anfragen bei.

Jedes Mal, wenn Sie auf ein Serversteuerelement klicken, wird eine "Postback" -Anforderung an den Server gesendet. ViewState enthält tatsächlich die Daten, die dem Server mitteilen, welches Steuerelement das Ereignis ausgelöst hat. Deshalb gibt es immer ein Formular (und weitere Formulare sind nicht erlaubt).

    
user151323 14.06.2010 14:57
quelle

Tags und Links