2016-08-23 71 views
0

我是MVC中的新手。我正在做一个程序,用于编辑mongodb中的现有记录。 我的程序没有更新记录。我的程序没有更新mongo db

这是编辑方法:

[HttpPost] 
public async Task<ActionResult> Edit(BioCardModel model) 
{ 

    await _bioCardServices.UpdateBioCard(model.cardId ,model); 

    return RedirectToAction("Index"); 
} 

这是在蒙戈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

看起来这个帖子中缺少视图代码,但我猜测你的视图并不包含模型的所有必要字段。确保将您的帖子中包含的所有字段渲染到视图中。

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

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