我是MVC的新手。我正在做一个编辑mongodb中现有记录的程序。 我的程序没有更新记录。
这是编辑方法:
[HttpPost]
public async Task<ActionResult> Edit(BioCardModel model)
{
await _bioCardServices.UpdateBioCard( model.cardId ,model);
return RedirectToAction("Index");
}
这是更新mongo db
中记录的方法public async Task UpdateBioCard(Guid value, [FromBody]BioCardModel card)
{
var db = ConnectToMongo();
var collection = db.GetCollection<BioCardModel>(_collection);
var filter = Builders<BioCardModel>.Filter.Eq("cardId", value);
var update = Builders<BioCardModel>.Update
.Set(b => b.name, card.name)
.Set(b => b.firstName, card.firstName)
.Set(b => b.lastName, card.lastName)
.Set(b => b.title, card.title)
.Set(b => b.lifeSpan, card.lifeSpan)
.Set(b => b.bio, card.bio)
.Set(b => b.bio, card.anecdote)
.Set(b => b.imageFront, card.imageFront)
.Set(b => b.imageBack, card.imageBack);
await collection.UpdateOneAsync(filter, update);
}
我的视图是一个填充了记录数据的简单表单。
答案 0 :(得分:0)
看起来这篇文章中缺少视图代码,但我猜你的视图不包含模型的所有必要字段。确保将您要包含的所有字段都包含在视图中。
您可以使用隐藏字段将主键输出到表单中,以确保将其发布回服务器。这是一个很好的链接,可以解释ASP.NET MVC中隐藏字段之间的区别
What is the difference between Html.Hidden and Html.HiddenFor