【发布时间】:2020-09-23 11:41:11
【问题描述】:
我在路由中提供了一个 ID(“.../api/mobile/registers/192” - 192 是 ID)和 PUT 请求正文中的其余参数。如何将它们绑定到具有所有参数的模型?问题是ID没有映射,一直是0:
[HttpPut("registers/{id}")]
public async Task ModifyPaymentRegister(PaymentRegisterModifyRequestVm model)
{
var result = await financeService.ModifyPaymentRegisterAsync(model, CurrentUserId.Value);
...
}
[BindProperties(SupportsGet = true)]
public class PaymentRegisterModifyRequestVm
{
/// <summary>
/// Идентификатор реестра
/// </summary>
[FromRoute]
public int Id { get; set; }
/// <summary>
/// Описание реестра
/// </summary>
[FromBody]
public string Description { get; set; }
/// <summary>
/// Тип модификации реестра
/// </summary>
[FromBody]
public PaymentModifyType ModifyType { get; set; }
}
【问题讨论】:
-
检查 FromBody 喜欢:public string MyMethod([FromBody] JObject data){}
-
反正body参数映射了,但是ID没有。
-
你应该把路由参数从
id改成Id
标签: c# asp.net-core model-binding