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.
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 )
Sie müssen den Modellstatus löschen, damit der Code etwa wie folgt aussieht:
%Vor%Tags und Links asp.net-mvc asp.net