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?
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.
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:
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.
Tags und Links asp.net-mvc angularjs razor validation