daf*_*key 3 .net javascript c# json breeze
我正在使用breezejs,我的应用程序的服务器端代码是.net.
在我的观点(客户端),我想添加和实体然后我想保存它.让我们假设一个实体是这样的:
{
"Id": 1,
"Name": "someName",
"CreatedDate": "1900-01-01T05:00:00Z",
"UpdatedDate": "1900-01-01T05:00:00Z",
"CreatedBy": null,
"UpdatedBy": null,
"RowVersion": 0,
etc ...
}
}
Run Code Online (Sandbox Code Playgroud)
我想设置的值CreatedDate UpdatedDate CreatedBy和UpdatedBy,我能做到这一点当然是使用JavaScript的,但我不希望客户采取这种事情的照顾.
我的微风控制器在哪里生活这个功能是这样的:
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{
return _contextProvider.SaveChanges(saveBundle);
}
Run Code Online (Sandbox Code Playgroud)
因为你可以看到saveBundle是一个JObject,当我调试时,我看到saveBundle是这样的:
{
"entities": [
{
"Id": 1,
"Name": "someName",
"CreatedDate": "1900-01-01T05:00:00Z",
"UpdatedDate": "1900-01-01T05:00:00Z",
"CreatedBy": null,
"UpdatedBy": null,
"RowVersion": 0,
etc ...
}
}
}
],
"saveOptions": {}
}
Run Code Online (Sandbox Code Playgroud)
如何在提交保存之前更改saveBundle中的值CreatedDate UpdatedDate CreatedBy和UpdatedBy?
这是一个JObject,有一个对象数组作为proprety,我可以用javascript操纵Json,我怎么能用.Net ???
非常感谢.
感谢Jay Traband的帖子,我终于找到了一种在保存之前对实体进行更改的方法.
我重载了BeforeSaveEntity这样的:
protected override bool BeforeSaveEntity(EntityInfo entityInfo) {
// Return false if don´t want to save the entity
var entityType = entityInfo.Entity.GetType();
if (entityInfo.Entity.GetType() == typeof(MyEntityTypeModel))
{
if (entityInfo.EntityState == EntityState.Added)
// It can be 'Modified' or 'Deleted'
{
var MyModel = entityInfo.Entity as MyEntityTypeModel;
MyModel.CreatedDate = DateTime.Now;
MyModel.UpdatedDate = DateTime.Now;
string username = Membership.GetUser().UserName;
MyModel.CreatedBy = username;
MyModel.UpdatedBy = username;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
非常感谢,我希望有一天能帮助别人.
| 归档时间: |
|
| 查看次数: |
1066 次 |
| 最近记录: |