在 ASP.NET Core 3.1 中,当使用 [FromBody] 属性将 JSON 对象绑定到类实例时,可能会发现类中的某些成员无法绑定到 JSON 属性。
这是因为 ASP.NET Core 默认仅绑定 JSON 对象中与类中存在属性名称相同的属性。如果 JSON 对象中包含其他属性,则这些属性将被忽略。
为了解决该问题,您可以使用“[Bind]”属性明确指定要绑定的属性。例如:
[HttpPost]
public ActionResult
public class MyModel { public string PropA { get; set; }
[Bind(nameof(MyModel.PropB))]
public string PropB { get; set; }
public string PropC { get; set; }
}
在上面的代码示例中,使用“[Bind]”属性明确指定了要绑定的属性名称(“PropB”),因此即使 JSON 对象中未声明“PropC”属性,也不会被忽略。
这种方式可以让您更好地控制绑定过程,以确保所有类成员都可以正确地绑定到 JSON 属性。