ASP.Net MVC-Validierung mit Angular VS Razor

8

ASP.Net MVC zusammen mit benutzerdefinierten Attributen in Ihrem Modell und mit Razor, können Sie einfach einen HTML-Helper schreiben wie @ Html.ValidationMessageFor (model = & gt; model.MyAttribute) um jedes Feld zu validieren.

AngularJS beabsichtigt, alles auf der Clientseite zu rendern, also haben wir keinen Zugriff auf Razor und alle Javascript-Validatoren, die kostenlos generiert werden. Wir müssen alles von Hand neu codieren, und wir haben nicht die Garantie, dass diese Validierung mit der serverseitigen Validierung übereinstimmt, die wir mit Razor hatten.

Wie werden wir dieses GAP überwinden?

    
user3864332 08.09.2014, 21:02
quelle

3 Antworten

4

Das löst mein Problem:

Ссылка

Wenn wir tiefer gehen wollen (was ich jetzt nicht brauche), können wir das haben:

Ссылка

    
user3864332 16.09.2014, 14:27
quelle
0

Ich denke, das ist eine Frage, die angulare Anfänger stellen werden (so habe ich sie gefunden :)), und das ist, wie ich denke, am Ende:

Das zu validierende Modellfeld wird aus der Winkelansicht - & gt; zu einem Winkelregler - & gt; zu einem eckigen Service - & gt; asp.webapi-Methode oder asp.mvc Controller-Aktion, die am Ende - & gt; zu einem MVC-Modell

Dies bedeutet, dass Sie auf all diesen (mindestens 4 "Projektoren") sicher sein müssen, das genaue Modell und Feld, das Sie mit Rasiermesser beziehen, zu übertragen.

Also, was ich meine, ist, dass es eine Menge Dinge gibt, die eure Konstanz auf den Weg bringen können.

Geben Sie den Rasierer zur Validierung auf.

Es ist wartungsfreundlicher (lesbar), sie manuell für die Clientseite neu zu schreiben und automatisierte Tests zu verwenden, um Konsistenz sicherzustellen.

    
mihainradu 19.09.2014 14:28
quelle
0

Ich werde das serverseitige Modell nur für die Servervalidierung verwenden und alle Clientvalidierungen mit Angular durchführen.

Das Problem ist alt und existiert vor der Popularität von Angular. Stellen Sie sich vor, dass Sie Ihr Domänenmodell erstellen und ein einfaches Ansichtsmodell für die MVC-App erstellen. In diesem Fall haben Sie folgende Alternativen:

  1. Erstellen Sie Ihr Ansichtsmodell über dem Domänenmodell, was manchmal keine gute Lösung ist. In diesem Fall können Sie die Validierung vom Domänenmodell mit dem Ansichtsmodell teilen.
  2. Erstellen Sie das Ansichtsmodell, das von Ihrem Domänenmodell entkoppelt ist, was eigentlich ideal ist. In diesem Fall könnten Sie jedoch die Validierung duplizieren. Entwickeln Sie die Validierung für die Serverseite im Domänenmodell und die Validierung für die Benutzeroberfläche im Ansichtsmodell.

Nach Ansichtsmodell bezeichne ich das Modell im MVC-Projekt, das an die Ansicht angehängt ist.

Meiner Meinung nach werde ich immer für Option 2 gehen und in Ihrem Fall werde ich die clientseitige Validierung durch Angular und serverseitige Validierung im Domänenmodell erstellen.

    
Memo 13.11.2014 22:46
quelle