我有一个viewmodel,我绑定了我的视图调用“EditProfile”。现在,一旦用户点击菜单栏中的“EditProfile”链接,我通过调用get restful service加载所有配置文件信息,用户可以看到他/她的个人资料。
用户可以更改他们想要的任何字段,但我只想发布由用户更改的字段。
我知道如何比较两个属性但不知道如何从viewmodel中仅提取修改后的属性。有没有人到过这种情况呢?
我的viewmodel中的属性是:
public class UserViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Profession { get; set; }
}
答案 0 :(得分:1)
过去,我为ViewModel实施了INotifyPropertyChanged
。我在PropertyChanged事件触发后记录了哪些属性已更改。
答案 1 :(得分:0)
为什么不采取替代方法 - 发布所有内容(因此模型可用)并且只在对象上具有“IsDirty”属性,这些属性足够聪明,只能提交对数据库的更改(如实体框架默认情况下那样)< / p>
您可以简单地形成自己的jQuery .post()参数,但除非您有大量数据 - 为什么?这使得难以阅读的视图模型(您如何知道在什么场景下发布的内容)所以典型的方法是发布单独的视图模型或发布我认为基本形式更容易的所有内容。