Asp.net web api Asp.Net核心Web API修补程序Id始终为空

Asp.net web api Asp.Net核心Web API修补程序Id始终为空,asp.net-web-api,asp.net-core-3.1,http-patch,Asp.net Web Api,Asp.net Core 3.1,Http Patch,我有一个asp.net核心web api,其端点使用补丁。需要更新记录的单个字段。我有端点设置来接受Json补丁文档体中记录的id 以下是我的端点当前的设置方式。我只是有足够的代码来检查我是否可以找到一个不符合预期的匹配id [HttpPatch("{id}")] public IActionResult updateDescription( [FromRoute] string reportId, [FromBody] JsonPatchDocument<Re

我有一个asp.net核心web api,其端点使用补丁。需要更新记录的单个字段。我有端点设置来接受Json补丁文档体中记录的id

以下是我的端点当前的设置方式。我只是有足够的代码来检查我是否可以找到一个不符合预期的匹配id

[HttpPatch("{id}")]
    public IActionResult updateDescription( [FromRoute] string reportId, [FromBody] JsonPatchDocument<Reports> patchEntity)
    {

        //reportId is null... not showing the id being passed in the api call
        if (patchEntity == null)
        {
            return Ok("body is null");
        }
     

        var entity = _context.Reports.SingleOrDefault(x => x.ReportId == reportId);

        if (entity == null)
        {
            return Ok(reportId + " Why is entity null!");
        }

        //patchEntity.ApplyTo(entity, ModelState);

        return Ok(entity + " found!");
    }
[HttpPatch(“{id}”)]
public IActionResult updateDescription([FromRoute]string reportId,[FromBody]JsonPatchDocument patchEntity)
{
//reportId为null…不显示api调用中传递的id
if(patchEntity==null)
{
返回Ok(“正文为空”);
}
var entity=_context.Reports.SingleOrDefault(x=>x.ReportId==ReportId);
if(实体==null)
{
返回Ok(reportId+“为什么实体为空!”);
}
//patchEntity.ApplyTo(实体,模型状态);
返回Ok(实体+“找到!”);
}
当我调用传递Id的api时,report Id参数显示为null

API调用:http://localhost:4200/api/updateDesc/A88FCD08-38A3-48BB-8E64-61057B3C0B1F 我正在使用postman,API端点正在正确地发送和读取JSON正文。

我遗漏了什么导致路由ID未分配给reportID参数

我还尝试了一个稍微不同的终点,结果也是一样的

[HttpPatch("{id}")]
    public IActionResult updateDescription(string reportId, [FromBody] JsonPatchDocument<Reports> patchEntity)
    {

        //reportId is null... not showing the id being passed in the api call
        if (patchEntity == null)
        {
            return Ok("body is null");
        }
     

        var entity = _context.Reports.SingleOrDefault(x => x.ReportId == reportId);

        if (entity == null)
        {
            return Ok(reportId + " Why is entity null!");
        }

        //patchEntity.ApplyTo(entity, ModelState);

        return Ok(entity + " found!");
    }
[HttpPatch(“{id}”)]
public IActionResult updateDescription(字符串reportId,[FromBody]JsonPatchDocument patchEntity)
{
//reportId为null…不显示api调用中传递的id
if(patchEntity==null)
{
返回Ok(“正文为空”);
}
var entity=_context.Reports.SingleOrDefault(x=>x.ReportId==ReportId);
if(实体==null)
{
返回Ok(reportId+“为什么实体为空!”);
}
//patchEntity.ApplyTo(实体,模型状态);
返回Ok(实体+“找到!”);
}
请立即尝试

[HttpPatch("{reportId}")]
    public IActionResult updateDescription( [FromRoute] string reportId, [FromBody] JsonPatchDocument<Reports> patchEntity)
    {
[HttpPatch(“{reportId}”)]
public IActionResult updateDescription([FromRoute]string reportId,[FromBody]JsonPatchDocument patchEntity)
{

谢谢您的帮助。