【发布时间】:2017-01-02 22:26:39
【问题描述】:
我有一个 .NET Core API,它应该使用 Entity Framework Core 更新数据库中的实体。
当用户编辑现有条目时,编辑表单只发回编辑后的数据,而不是完整的实体。
假设我们有一家商店:
public class Shop {
public int ShopID { get;set;}
public string Name { get;set;}
public string Address { get;set;}
}
现在,用户编辑并保存地址。发送回 API 的数据将是 ShopID 和地址。但是,使用下面的模型绑定会将 Name 设置为 NULL,这是合乎逻辑的,因为它实际上并没有被传入。
[Route("~/shop/[action]")]
public IActionResult Update([FromBody] Shop shop)
{
_context.Shops.Update(shop);
_context.SaveChanges();
return new JsonResult(new { result = true });
}
因此,由于我不知道可能会更新哪些属性(实际上,还有更多属性),因此我需要某种方式来动态更新仅通过 POST 请求发送的字段。
提前致谢。
【问题讨论】:
标签: c# json entity-framework asp.net-core model-binding