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?

War es hilfreich?

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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top