Musterstaat bedeutung

Quelldaten werden dem Modellbindungssystem von Wertanbietern zur Verfügung gestellt. Sie können benutzerdefinierte Wertanbieter schreiben und registrieren, die Daten für die Modellbindung aus anderen Quellen abrufen. Sie können z. B. Daten aus Cookies oder Sitzungsstatus verwenden. So erhalten Sie Daten aus einer neuen Quelle: Hier ist ein Beispiel dafür, wie ein Validierungsattribut und IValidatableObject in Ihrer Modellklasse implementiert werden können: In diesem Artikel wird erläutert, was Modellbindung ist, wie sie funktioniert und wie ihr Verhalten angepasst werden kann. Wenn die Seite durch den vorherigen Code erneut angezeigt wird, wird die ungültige Eingabe nicht im Formularfeld angezeigt. Dies liegt daran, dass die Modelleigenschaft auf null oder einen Standardwert festgelegt wurde. Die ungültige Eingabe wird in einer Fehlermeldung angezeigt.

Wenn Sie jedoch die fehlerhaften Daten im Formularfeld erneut anzeigen möchten, sollten Sie die Modelleigenschaft zu einer Zeichenfolge machen und die Datenkonvertierung manuell durchführen. Die gleiche Strategie wird empfohlen, wenn Typkonvertierungsfehler nicht zu Modellstatusfehlern führen sollen. Machen Sie in diesem Fall die Modelleigenschaft zu einer Zeichenfolge. Zu den einfachen Typen, in die der Modellbinder Quellzeichenfolgen konvertieren kann, gehören die folgenden: Verfügbar in ASP.NET Core 2.1 und höher. Kann auf einen Controller oder eine PageModel-Klasse angewendet werden, um die Modellbindung anzuweisen, um alle öffentlichen Eigenschaften der Klasse als Ziel zu verwenden: Wenn das zu bindende Modell ein Parameter mit dem Namen instructorToUpdate ist und ein Bindf-Attribut Instructor als Präfix angibt: Wir können dem Modellstatus tatsächlich Fehler über die AddModelError-Methode in ModelStateDictionary hinzufügen: Wenn das zu bindende Modell ein Parameter mit dem Namen instructorToUpdate ist: Der Standardmodellbinder fügt einige Fehler für grundlegende Konvertierungsprobleme hinzu (z. B. übergeben einer Nicht-Zahl für etwas, das ein “int” ist). Sie können ModelState vollständiger auf der Grundlage des von Ihnen verwendenden Validierungssystems auffüllen. Standardmäßig sind Eigenschaften nicht an HTTP GET-Anforderungen gebunden.

In der Regel benötigen Sie nur einen Datensatz-ID-Parameter. Die Datensatz-ID wird verwendet, um das Element in der Datenbank nachzuschlagen. Daher ist es nicht erforderlich, eine Eigenschaft zu binden, die eine Instanz des Modells enthält. In Szenarien, in denen Eigenschaften an Daten aus GET-Anforderungen gebunden werden sollen, legen Sie die SupportsGet-Eigenschaft auf true fest: Standardmäßig wird kein Modellstatusfehler erstellt, wenn kein Wert für eine Modelleigenschaft gefunden wird. Die Eigenschaft ist auf null oder einen Standardwert festgelegt: Es lohnt sich, daran zu denken, dass auch die Werttypen der Eigenschaften des Modells überprüft werden. Beispielsweise können Sie einer int-Eigenschaft keinen Zeichenfolgenwert zuweisen. Wenn Sie dies tun, wird es nicht gebunden und der Fehler wird auch zu Ihrem ModelState hinzugefügt. Die Überprüfung, ob ein Modell gültig ist, ist zu diesem Zeitpunkt ein ziemlich automatisches Verhalten. Wenn eine Anforderung ein Modell erwartet, müssen wir sicherstellen, dass die Validierung gut ist, und wir verwenden dafür ModelState.IsValid. Um den Modellbindungsprozess bei verwendung von System.Text.Json anzupassen, erstellen Sie eine von JsonConverter abgeleitete Klasse: Um die Modellbindung für alle Modelle eines angegebenen Typs zu deaktivieren, fügen Sie einen ExcludeBindingMetadataProvider in Startup.ConfigureServices hinzu.