我无法弄清楚如何在.net web api中更新文档。我在网上阅读了很多教程,但仍然没有成功。其中一个是this site。
data: () => {
return {
templates: [],
newTemplate: '',
title: 'Choose a template',
selected: {},
chosen: {
Id: '5a3cd8e0762cb02118232752',
max: '5',
rules:'2'
},
};
},
将数据发送到api的方法
updateTemplate: function (_id) {
axios({
method: 'put',
url: 'http://localhost:57802/api/updateleavetemplate',
params: { Id: _id },
data: {
id: this.chosen.Id,
max: this.chosen.max,
rules: this.chosen.rules
}
}).then(function (response) { console.log(response); })
.catch(function (error) {
console.log(error);
});
},
API控制器
[Route("api/updateleavetemplate/")]
[HttpPut]
public void UpdateLeave(String Id, LeavesTemplate UpdatedModel)
{
_LeavesTemplateRepository.EditLeavesTemplate(Id, UpdatedModel);
}
从存储库编辑方法
public void EditLeavesTemplate(String Id, LeavesTemplate leavestemplate)
{
LeavesTemplate t = FindLeavesTemplateById(new ObjectId(Id));
t.max = leavestemplate.max;
t.rules = leavestemplate.rules;
var filter = Builders<LeavesTemplate>.Filter.Eq(s => s.Id, leavestemplate.Id);
var result = context.LeavesTemplates.ReplaceOneAsync(filter, t);
}
答案 0 :(得分:0)
我只是通过以下代码替换存储库中的方法:
public void EditLeavesTemplate(String Id, LeavesTemplate leavestemplate)
{
LeavesTemplate z = FindLeavesTemplateById(new ObjectId(Id));
z.rules = leavestemplate.rules;
z.max = leavestemplate.max;
z.Id = ObjectId.Parse(Id);
ReplaceOneResult e = context.LeavesTemplates.ReplaceOne(Builders<LeavesTemplate>.Filter.Eq(r => r.Id, z.Id), z, new UpdateOptions() { IsUpsert = true });
Console.WriteLine(e.IsAcknowledged);
}