2012-04-03 73 views
0

我有viewmodel,我绑定我的视图调用“EditProfile”。现在,一旦用户点击菜单栏上的“EditProfile”链接,我会通过调用get restful service来加载所有配置文件信息,并且用户可以看到他/她的配置文件。如何查找属性未修改或更改?

用户可以更改他们想要的任何字段,但我只想发布由用户更改的字段。

我知道如何比较两个属性,但不知道如何只从视图模型中提取修改过的属性。以前有没有人来过这种情况?在我的视图模型

属性是:

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

回答

1

在过去,我实现INotifyPropertyChanged的视图模型。我记录了在PropertyChanged事件触发后哪些属性发生了变化。

+0

您是否具有此方案的代码示例,就像您之前所做的那样? – updev 2012-04-03 21:29:09

0

为什么不采取其他方法 - 发布所有内容(因此模型可用),并且只需在对象上具有足够智能的“IsDirty”属性,以便仅向数据库提交更改(如实体框架默认情况下那样)

您可以简单地形成自己的jQuery .post()参数,但除非您有大量数据 - 为什么?它使得难以阅读视图模型(你怎么知道什么是在什么情况下发布的),所以典型的方法是发布单独的视图模型或张贴我认为基本形式更容易的所有内容。