2 Stimmen

Woher nehmen Formularfelder in ASP.Net MVC ihre Werte?

Ich verstehe, dass Felder wie Html.TextBox() zwei Werte akzeptieren, wobei der erste der Name und der zweite der Wert ist. Das gilt auch für Html.TextArea(). Aber in einem Fall, in dem das Formular als AJAX übermittelt wird und das DIV, in dem sich das Formular befindet, durch eine Ansicht vom Server ersetzt wird, beharren die Formularfelder darauf, die vorherigen Werte anzunehmen. Ein Bild sagt mehr als tausend Worte:

Bild http://img132.imageshack.us/img132/4171/aspnetmvcbug.png

Ich habe alles im Controller und im Modell überprüft und das Bild stammt aus dem Debuggen der Ansicht selbst. Das Modell ist leer, aber die daraus generierten Felder übernehmen den Wert des vorherigen Absendens.

3voto

Steve Willcock Punkte 24787

Die Postback-Daten werden im ModelState gehalten. Die integrierten HtmlHelper-Methoden suchen beim Rendern ihres Inhalts nach Werten, die im Modellzustand basierend auf dem Namen des Formularelements gespeichert sind.

2voto

Ray Vernagus Punkte 6070

Überprüfen Sie das View.ModelState-Objekt. Formulare können unter bestimmten Umständen Werte von dort abrufen.

0voto

GalacticCowboy Punkte 11505

Haben Sie einen Eintrag ViewData["Body"]? MVC wird auch versuchen, ein Steuerelement an ein ViewData-Element mit dem Namen zu binden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X