2012-04-03 23 views
0

Ich habe Viewmodel, die ich bin mit meiner Ansicht binden "EditProfile". Jetzt, wenn der Benutzer auf den Link "EditProfile" in der Menüleiste klickt, lade ich alle Profilinformationen, indem ich auf "Restful Service" anrufe und der Benutzer kann sein/ihr Profil sehen.Wie werden die Eigenschaften nicht geändert oder geändert?

Der Benutzer kann jedes gewünschte Feld ändern, aber ich möchte nur Felder posten, die vom Benutzer geändert wurden.

Ich weiß, wie man zwei Eigenschaften vergleicht, aber nicht weiß, wie man nur modifizierte Eigenschaften vom viewmodel zieht. Ist jemand schon einmal in dieser Situation angekommen?

Eigenschaften in meinem Viewmodel sind:

public class UserViewModel 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string Email { get; set; } 
    public string Profession { get; set; } 
} 

Antwort

1

In der Vergangenheit umgesetzt ich INotifyPropertyChanged für das Ansichtsmodell. Und ich habe protokolliert, welche Eigenschaft geändert wurde, nachdem das PropertyChanged-Ereignis ausgelöst wurde.

+0

Haben Sie das Codebeispiel für dieses Szenario, wie Sie es zuvor getan haben? – updev

0

Warum nicht einen alternativen Ansatz wählen - alles posten (also das Modell verfügbar ist) und einfach "IsDirty" -Eigenschaften für Ihre Objekte haben, die schlau genug sind, nur Änderungen an die Datenbank zu senden (wie das Entity-Framework standardmäßig)

Sie können einfach Ihre eigenen jQuery .post() - Parameter erstellen, aber es sei denn, Sie haben eine Tonne Daten - warum? Es macht ein schwer zu lesendes View-Modell (woher weißt du, was in welchen Szenarien gepostet wird), also ist der typische Ansatz, separate View-Modelle zu posten oder alles zu posten, was meiner Meinung nach einfacher ist.

Verwandte Themen