Was ich falsch verstehe, wie Html.TextBoxFor funktioniert

8

Ich versuche gerade, mit der neuen Version wieder in .NET MVC zu kommen, und ich kann meinen Kopf nicht um den Weg herum sehen, der für das DataModel bindend ist.

Ich habe ein Modell mit einer Eigenschaft "first_name" und in einem HTML-Formular habe ich Folgendes:

%Vor%

In einer Aktion auf einem Controller, wenn ich die Eigenschaft first_name auf mein Modell setze und

tue %Vor%

Was ist der Grund, warum nur das dritte Textfeld diesen Wert für first_name aufgreift und die anderen beiden nicht?

Bearbeiten:

Ich habe das wahrscheinlich nicht gut genug erklärt, tut mir leid. Stellen Sie sich vor, ich habe 2 Controller-Methoden -

%Vor%

Mit diesem funktioniert entweder die Bindung.

Nachdem dies angezeigt wurde, klicke ich auf eine Schaltfläche im Formular und versuche es dann:

%Vor%

Was ich frage ist, warum bindet der 3. aber nicht der erste 2 an "Steve" als neuen Namen.

    
Uwe Keim 19.02.2010, 16:03
quelle

3 Antworten

5

Weil HTML-Helfer den Wert aus dem ModelState und nicht aus dem Modell lesen. Um dieses Verhalten zu ändern, müssen Sie auch mit ModelState arbeiten (Siehe: Modelleigenschaften beim Postback ändern )

    
Çağdaş Tekin 19.02.2010, 16:34
quelle
8

Sie müssen den Modellstatus löschen, damit der Code etwa wie folgt aussieht:

%Vor%     
lancscoder 19.02.2010 16:39
quelle
1

Dies sollte für die ersten beiden funktionieren:

%Vor%     
AxelEckenberger 19.02.2010 16:07
quelle

Tags und Links