2010-06-14 7 views
7

Ich bin ein PHP-Entwickler, der an ASP.net-Projekten arbeiten muss und ich wundere mich, warum jede Seite in einem Formular verpackt ist. Das ergibt für mich keinen Sinn.Warum wickelt asp.net die Seite in einem Formular?

Auch Was ist mit allen versteckten Eingabefeldern, vor allem die "View State".

+2

sollte spezifisch sein, dass dies asp.net Webformulare ist, nicht ASP.NET MVC, die mehr wie die PHP-Umgebung ist, die Sie gewohnt sind – MikeJ

Antwort

11

ASP.Net versucht, es so zu machen, dass die Programmierer vorgeben können, dass das Web eine stateful Plattform ist und dass es sich wie eine Desktopanwendung 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.

Ein Teil der zu einem anständigen ASP.Net Programmierer lernt, wann ViewState zu verwenden und nicht, weil der Standard ist, es überall zu verwenden, was eine Menge Aufblähung in der heruntergeladenen Seite verursacht.

2

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

Das Schlüsselobjekt ist eine Server-Seite. 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).

3

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

Dies bedeutet, dass alles, was Sie mit einer serverseitigen Aktion auf der Webseite platzieren, ein "Zurücksetzen" auf sich selbst verursacht. 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 Staat zu erhalten.

Wenn Sie nicht mögen, wie Aspx-Seiten versuchen, Webseiten in Stateful-Anwendungen im Formatstil zu verwandeln, können Sie das ASP.NET MVC-Framework ausprobieren, mit dem das Web wie vorgesehen funktioniert!

5

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

ASP.NET bietet "Web-Steuerelemente", die objektorientierte Abstraktionen von HTML-Elementen (und in einigen Fällen Gruppen von Elementen) sind - in Ihrem serverseitigen Code können Sie Befehle an verschiedene Ereignisse in Websteuerelementen anfügen Beispiel, Button.OnClick, TextBox.OnChanged) - das Framework verdrahtet 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 übergibt das Formular.

ViewState ist eine Technik, die vom Framework zum Serialisieren des Clientstatus verwendet wird. Es ist eine Alternative zur intensiven Verwendung von Sitzungen und handelt mit größeren HTML-Nutzdaten für einen geringeren Speicherbedarf auf dem Server.