我的程序没有更新mongo db

时间:2016-08-23 21:39:14

标签: c# asp.net-mvc mongodb

我是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);
}

我的视图是一个填充了记录数据的简单表单。

1 个答案:

答案 0 :(得分:0)

看起来这篇文章中缺少视图代码,但我猜你的视图不包含模型的所有必要字段。确保将您要包含的所有字段都包含在视图中。

您可以使用隐藏字段将主键输出到表单中,以确保将其发布回服务器。这是一个很好的链接,可以解释ASP.NET MVC中隐藏字段之间的区别

What is the difference between Html.Hidden and Html.HiddenFor