0

Ich erstellte die MVC-Anwendungsdatenbank - zuerst mit dem ID-Feld, das von der Datenbank generiert wird.MVC ModelState-Fehler "Das ID-Feld ist erforderlich" obwohl die Datenbank eine ID generiert

Da die ID von der Datenbank generiert wird, setze ich die Eigenschaft 'StoreGeneratedPattern' im Modell auf 'Identity'.

Allerdings erhalte ich immer noch den ModelState-Fehler "Das ID-Feld ist erforderlich", wenn ich ein "create" -Formular übergebe.

Ich habe versucht, die Lösung neu zu starten, sie zu säubern, neu aufzubauen. Ich weiß, dass ich dieses Problem schon früher hatte, also werde ich die Antwort hier posten, damit ich sie später finden kann.

Antwort

0

Ich hatte eine @Html.HiddenFor(model => model.ID) in der 'erstellen' Ansicht enthalten.

Also obwohl die Anwendung gerne keine ID akzeptiert hätte, wollte sie nicht null als ID akzeptieren.

Ich habe nur die @ Html.HiddenFor entfernt und es hat funktioniert.

P.S. Die Ansicht 'Bearbeiten' benötigt die @Html.HiddenFor(model => model.ID), um sich daran zu erinnern, was die ID war.

0

Für die Bearbeitungsansicht benötigen Sie die ID, um die entsprechende Zeile zu aktualisieren.

Wenn Sie @ Html.HiddenFor (model => model.ID) entfernen => System wird immer neue Zeile generieren, wenn Sie versuchen, das Formular zu bearbeiten.

Sie können den Code unten folgen, um die gleiche Ansicht sowohl für die Wiederverwendung erstellen/bearbeiten

if (model != null) 

{ 

    @Html.HiddenFor(model => model.ID) 
} 

=> Wenn Sie versuchen, ein Formular zu erstellen - Modell anfänglich null sein wird, so dass das versteckte Feld wird nicht ausgeführt werden.

=> Wenn Sie versuchen, versteckte Feld speichert Ihre ID zu bearbeiten.