我正在尝试更新项目列表。但我想只更新我视图中已更改的项目。
目前,在我的控制器上我有这段代码
foreach ( var item in items )
{
update(item);
}
但我需要有类似的东西
foreach ( var item in items )
{
if(ItemHasChanged(item))
{
update(item);
}
}
我需要这个,因为我不想做任何不必要的更新,这对性能有好处。另外,我不想对数据库进行往返检查,以检查项目是否已更改。
是否可以检查视图是否已更改项目?
我正在使用asp.net mvc 4 ...
答案 0 :(得分:3)
以下jQuery将完成这项工作。由于在视图中更改了任何输入字段,因此将触发此功能。
$('form :input').on('change input', function () {
alert('changed'); //Your code..
});
答案 1 :(得分:1)
也许您可以在将模型发送到视图之前缓存模型。
HttpContext.Current.Session [" OldModel"] = yourModel;
然后将您在POST操作中获得的模型与缓存的模型进行比较。
如果您决定使用JavaScript,我认为您应该考虑用户可以在浏览器上修改或禁用JavaScript。