ViewState-HiddenField oder
Wenn ich ein einfaches Stück von Daten zu speichern (integer oder string zum Beispiel) könnte ich wählen, speichern in ViewState oder mit einem HiddenField-Steuerelement.
Warum sollte ich Sie wählen einen über den anderen?
ViewState
- Schwer für den Benutzer zu entschlüsseln, dachte nicht unmöglich), was vielleicht wünschenswert
HiddenField
- Wert kann verwendet werden, in JavaScript
Gibt es andere vor-und Nachteile?
- Sie können auch speichern von Daten im Session-Objekt
- Ja, ich verstauen konnte in der Sitzung jedoch in diesem Szenario die Daten ist nur relevant für die Seite betrifft, so ist aus Gründen der Kapselung ich würde es vorziehen, um es zu speichern auf der-Seite.
- Die Speicherung der Daten in der session würde im wesentlichen machen es global in scope. Speichern Sie es in der Seite würde den Bereich auch verkleinern, das ist die bessere Gestaltung der Praxis.
- Einverstanden, wenn es nur für die Seite. Ich würde für zu gehen ViewState, vor allem aus dem Grund, dant hat Punkte aus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht wirklich, ViewState gespeichert wird in einem versteckten Feld, so dass der einzige wirkliche Unterschied ist die Codierung.
Es sei denn, Sie zu Bearbeiten müssen Sie den Wert mit JavaScript, oder Sie hoffen, deaktivieren Sie ViewState auf dieser Seite überhaupt dann würde ich die Verwendung von ViewState. Meist nur, weil es third-party-tools ( wie diese ), die verstehen, ViewState und die nicht verstehen, Ihre ausgeblendeten benutzerdefinierten Feld.
Vom Wartbarkeit Sicht, würde ich die Verwendung von ViewState. Es ist weniger code für Sie zu schreiben, und das kommt weniger Punkte für Fehler in Ihrer software. Es bedeutet auch, dass jeder Entwickler kommt, nachdem Sie haben eine einfachere Zeit mit der Wartung Ihrer Lösung.
Wenn Sie nicht ganz bequem ist, schreiben Sie ein property-accessor auf der Seite, die wirkt wie eine Fassade zum abrufen des Wertes aus dem ViewState. Später, wenn Sie fühlen sich gezwungen zu konvertieren, um ein verstecktes Feld, das accessor verarbeiten kann, die Schalter fügen sich nahtlos zum rest des Codes. Nur sicher sein, Sie dokumentieren Sie Ihre Gründe für so tun.
ViewState gespeichert ist, die in die Seite selbst, so dass es erhöht die Größe der Seite und es kann dazu führen,performance-Probleme.
Auch wir können die Anwendung so konfigurieren, speichern Sie die viewstate auf dem server eher als auf der Seite selbst, die möglicherweise schützen von einigen Sicherheitsfragen.
Jomit
Das versteckte Feld unsichtbar auf der Seite und Ihre Werte können angezeigt werden, im Quelltext aber der Wert des view-state sind verschlüsselt und nicht lesbar.
Das versteckte Feld mit dem Wert gebucht werden, die auf der nächsten Seite. (Hinweis: verwenden Sie den server.transfer, um den Wert der hidden-Felder).
Viewstate ist nur gut auf der Seite, die Sie eingeschaltet sind, oder die Buchung zurück. Mit einem versteckten Feld können Sie den Zugriff auf die Daten, die Sie auf der nächsten Seite wählen Sie (sowie andere Daten) durch PreviousPage-Methode des Page-Objekts, zum Beispiel so: