In meiner Razor-Ansicht (ASP.NET MVC 4) habe ich zwei Radiobuttons zum Ein- / Ausblenden einiger Felder. Wenn der erste Radiobutton ausgewählt ist, sind diese Felder nicht sichtbar. Wenn der zweite Radiobutton ausgewählt ist, werden die Felder sichtbar. Dies geschieht durch eine Javascript-Funktion, die an das radiobuttons onclick-Ereignis gebunden ist.
%Vor%Ich verwende Datenanmerkungen im Ansichtsmodell, um die Validierung durchzuführen. Mein Problem ist, dass die unsichtbaren Felder auch validiert werden. Diese Felder müssen nur validiert werden, wenn sie sichtbar sind. Ich habe versucht, das Data-Val-Attribut auf den Eingabeelementen zu manipulieren, aber das funktioniert nicht.
%Vor%Wie kann ich mein Problem lösen? Gibt es eine Möglichkeit, die Überprüfung für die Felder zu deaktivieren, die durch clientseitiges JavaScript nicht sichtbar sind? Ansonsten muss ich ein Postback machen, um die Felder bedingt zu rendern.
Ich würde vorschlagen, jQuery-Validierung zu verwenden. Sie können Ihr Modell bedingt validieren:
%Vor%Das Problem wird auf dem Back-End sein. Wenn Sie Datenannotationen verwenden, würde ich annehmen, dass Sie das Modell auch im Controller validieren. etwas wie 'Model.isValid ()' oder ähnliches? Solange beide Fälle (Radio-Button1-Klick oder Button2-Klick) immer übereinstimmen mit dem, was ein "gültiges" Modell sein sollte, ist alles in Ordnung. Andernfalls müssen Sie möglicherweise einige Datenanmerkungen deaktivieren. Nur aus meiner Erfahrung. jQuery Validation Docs
Tags und Links asp.net-mvc