Verwendung von ViewModels in ASP.NET MVC?

8

Ich habe gerade angefangen, über ViewModels in ASP.NET MVC zu lernen. Also dachte ich über die Implementierung eines Beispielbeispiels nach:

Geschäftseinheit

%Vor%

ViewModel hinzufügen

%Vor%

Controller

%Vor%

Implementierung anzeigen

%Vor%

Das Problem hierbei ist, dass ich die in die Textfelder eingegebenen Werte nicht abrufen kann, wenn auf die Schaltfläche Add geklickt wird. die entsprechende AJAX-Aktion ist es.

Wenn ich versuche, auf die Werte von a und b zuzugreifen, erhalte ich Nullen anstelle der in die Textfelder eingegebenen Werte.

Ich bin mir nicht sicher, wo ich falsch liege. Bitte helfen.

    
Sai Avinash 02.12.2013, 08:24
quelle

2 Antworten

6

Ihr Ansichtsmodell sollte so aussehen

%Vor%

und im cshtml

%Vor%

in der Steuerung

%Vor%

Bearbeiten

Das Ansichtsmodell dient dazu, dass Ihre Ansichten keine Logik darin platzieren. Wenn Sie ein komplexeres Modell haben, ist es schwierig, Model mit ViewModel abzubilden. Dazu können Sie AutoMapper oder ValueInjector für die Zuordnung zwischen Modell und Ansichtsmodell verwenden.

Link für den Autoadapter Ссылка

Link für Value Injector Ссылка

hoffe das hilft

    
Anto Subash 02.12.2013, 10:07
quelle
5

Sie sollten die Domain-Entitäten (Business-Entitäten) nicht in Ihrem Ansichtsmodell verwenden. Wenn Sie dies tun, ist ein View-Modell ziemlich nutzlos, da es immer noch Geschäftslogik enthält, die Sie möglicherweise nicht in der Ansicht haben möchten. Das Modell in Ihrem Beispiel repräsentiert nicht wirklich ein reales Szenario, ein View-Modell wird dafür sowieso nicht benötigt.

Ein gebräuchlicheres und trivialeres Beispiel eines View-Modells ist ein Login-Formular: Sie haben wahrscheinlich ein Domain-Modell namens User und möchten, dass sie sich anmelden. Das User -Domänenmodell kann groß und nur ein kleiner Teil sein davon wird für die Authentifizierung benötigt. Es enthält außerdem eine Validierungslogik für die Datenbank, die keine Validierungslogik für das Anmeldeformular darstellt.

Das User -Domänenmodell:

%Vor%

Das obige Domänenmodell stellt die Datenbanktabelle dar, die somit eine Validierungslogik zur Sicherstellung der Integrität enthält.

%Vor%

Das obige Ansichtsmodell enthält nur die Eigenschaften, die wir für das Anmeldeformular benötigen, und verfügt über eigene Datenanmerkungen. Dies hilft Ihnen, die Ansichtslogik und die Geschäfts- / Datenlogik sauber zu trennen.

    
Henk Mollema 02.12.2013 09:37
quelle