Viewstate oder Hidden
-
05-07-2019 - |
Frage
Wenn ich ein einfaches Stück zu speichernden Daten habe (eine ganze Zahl oder eine Zeichenkette zum Beispiel) Ich könnte wählen, dass speichern in Viewstate, oder mit einer Hidden Kontrolle.
Warum sollte ich wählen einen über den anderen?
Viewstate
- Hard für den Benutzer zu dekodieren (dachte nicht unmöglich), was wünschenswert sein könnte
Hidden
- Der Wert kann in JavaScript verwendet werden
Gibt es noch andere Vor-und Nachteile?
Lösung
Nicht wirklich, ist Viewstate tatsächlich in einem versteckten Bereich, so dass der einzige wirkliche Unterschied gespeichert ist die Codierung.
Wenn Sie den Wert mit JavaScript manipulieren, müssen oder Sie hoffen, dass Viewstate auf dieser Seite ganz dann auszuschalten ich Viewstate verwenden würde. Meist nur weil es Tools von Drittanbietern ( wie diese ) sind die gewonnen verstehen und die Viewstate ‚t Ihr benutzerdefinierten verstecktes Feld verstehen.
Andere Tipps
Aus Wartbarkeit Sicht würde ich Viewstate verwenden. Es ist weniger Code für Sie zu schreiben, die in Ihrer Software zu weniger Ausfallpunkten ankommt. Es bedeutet auch, dass alle Entwickler kommen, nachdem Sie werden es leichter haben Ihre Lösung beibehalten wird.
Wenn Sie damit nicht ganz vertraut sind, eine Eigenschaftenaccessor auf der Seite schreiben, die als Fassade wirkt, um den Wert aus dem Viewstate abzurufen. Später, wenn Sie sich gezwungen fühlen, sie zu einem versteckten Feld zu konvertieren, kann der Accessor, dass der Schalter seemlessly für den Rest des Codes behandeln. Seien Sie sicher, dass Sie Ihre Gründe dokumentieren so zu tun.
Der Viewstate wird in der Seite selbst gespeichert, so dass sie die Seitengröße erhöht und es verursachen kann Performance-Probleme .
Auch können wir die Anwendung so konfigurieren, dass den Ansichtszustand auf dem Server speichern anstatt auf Seite selbst, die von einigen Sicherheitsproblemen schützen könnte.
Jomit
Das verborgene Feld ist unsichtbar auf Seite und ihre Werte können im Hinblick Quelle betrachtet werden, aber der Wert des Ansichtszustandes codiert und ist nicht lesbar.
Der verborgene Feldwert ist auf dem nächsten Seite geschrieben. (Hinweis: Verwendung von Server.Transfer den Wert der ausgeblendeten Felder zu bekommen).
Viewstate ist nur gut auf der Seite sind Sie an oder veröffentlichen zurück zu. Mit einem versteckten Feld können Sie die Daten auf der nächsten Seite gelangen Sie (wie auch andere Daten) navigieren, indem Sie PreviousPage Methode des Page-Objekt wie folgt:
string term = ((TextBox)Page.PreviousPage.FindControl("txtSearchTerm")).Text;