我有一个控制器,它添加或编辑一个作为 JSON 对象发送到控制器的实体。
这是控制器:
public JsonResult SaveOrUpdateUser(User user)
{
Collection.Save(user);
//Collection is MongoDB.Driver.MongoCollection<User>
return Json(user);
}
如果用户是新用户,则一切正常。mongo 驱动程序按应有的方式设置 ID,并返回带有 ID 设置的新用户。但是,如果用户是现有用户,并且我正在更新某些内容,mongo 认为它是新用户,因为 MVC 似乎无法从我发送的 JSON 中自动设置 ObjectId。
现有用户的 JSON如下所示(为简洁而编辑)
{
"Id": "5230d5c5eae61521585eda99",
"Username": "someone@domain.com",
"Password": "newpassword"
}
和 C# 用户类:
public class User
{
public ObjectId Id {get; set;}
public string Username {get; set;}
public string Password {get; set;}
}
但是,user
当被 MVC 解析时,看起来像这样:
ObjectId Id = ObjectId(000000000000000000000000);
string Username = "someone@domain.com";
string Password = "newpassword";
因此,就 mongo 驱动程序而言,这是一个新实体。那么,有没有办法控制 MVC 如何将 JSON 解析为 aUser
以便正确设置 ObjectId(如果存在)?