.NET核心模型绑定问题

时间:2018-11-28 12:18:50

标签: c# model-binding asp.net-core-webapi bad-request

我有一个像这样的ASP.NET Core控制器

.map()

如果我尝试通过Advanced Rest Client作为请求URL调用更新操作

String.map

,然后在POST正文中:

[ApiController]
public class MADEController : Controller
{
   private readonly IRepository _repository;

   public MADEController( IRepository repository)
   {
       _repository = repository;
   }

   [HttpPost]
   [Route("DKAPI/MADE/Update/{tblId}/{recId}")]
   public HttpResponseMessage Update(string tblId, string recId, object formParams)
   {
      var temp = JsonConvert.SerializeObject(HttpContext.Request.Form.ToList());
   }
}

tblId获取值32,recId获取值5,但formParams对象始终为空。另一方面,线

http://localhost:10356/DKAPI/MADE/Update/32/5

打印上述对象。任何想法为什么会发生?我是否在.NET Core中缺少模型绑定方面的内容?它曾经在.NET 4.6 1中工作,但在.NET Core中失败了

为方便起见,我在此处添加我的startup.cs文件。

[{"Key":"formParams","Value":["[{\"key\":\"id\",\"value\":\"5\"},{\"key\":\"CarRegNo\",\"value\":\"HKK36512\"},{\"key\":\"CarEngSize\",\"value\":\"1234\"},{\"key\":\"DateCreated\",\"value\":\"19/09/2018 00:00\"},{\"key\":\"ExpenseStatus\",\"value\":\"U\"},{\"key\":\"DateCertified\",\"value\":\"\"},{\"key\":\"ClaimFrom\",\"value\":\"10/09/2018\"},{\"key\":\"ClaimTo\",\"value\":\"27/09/2018\"},{\"key\":\"TotalMilesuptothisclaim\",\"value\":\"\"},{\"key\":\"Staff\",\"value\":\"\"}]"]}]

如果我在启动文件中删除了这些行

var temp = JsonConvert.SerializeObject(HttpContext.Request.Form.ToList());

该操作从未执行过,并且收到HTTP 400错误的请求错误

0 个答案:

没有答案