我正在使用Asp.Net Core 2.2构建一个webapi。我的一个控制器有一个Put方法来更新实体。问题是,我从邮递员休息客户端传递的复杂对象始终为null。
[HttpPut]
[Route("{searchPatternId:long}")]
public async Task<IActionResult> Put(long searchPatternId, [FromBody]SearchPattern searchPattern)
{
try
{
if (searchPattern == null) return BadRequest();
return Ok(await _searchPatternService.PutAsync(searchPattern));
}
catch (Exception e)
{
await _errorLogService.Log(e);
return StatusCode(500);
}
}
Run Code Online (Sandbox Code Playgroud)
SearchPattern类:
[Table("search_pattern", Schema = "abc")]
public class SearchPattern
{
[Key]
public long SearchPatternId { get; set; }
public string Pattern { get; set; }
public long PatternHash { get; set; }
public int? Age { get; set; }
public string Location { get; set; }
public long TotalRecordsFound { get; set; }
public int TotalPages { get; set; }
public int LastSearchedPage { get; set; }
public string MachineName { get; set; }
public string CreatedBy { get; set; }
public DateTime CreatedDate { get; set; }
public string UpdatedBy { get; set; }
public DateTime? UpdatedDate { get; set; }
public string Url { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
邮递员要求:
到目前为止,这是我尝试过的:
[HttpPut]
[Route("{searchPatternId:long}")]
public async Task<IActionResult> Put([FromRoute]long searchPatternId, [FromBody]SearchPattern searchPattern)
[HttpPut("{searchPatternId:long}")]
public async Task<IActionResult> Put([FromRoute]long searchPatternId, [FromBody]SearchPattern searchPattern)
[HttpPut]
public async Task<IActionResult> Put([FromBody]SearchPattern searchPattern)
Run Code Online (Sandbox Code Playgroud)
调试输出:
该searchPattern参数设置为,null因为模型活页夹为模型属性获得了至少一个无效值。在您的情况下,很明显updateDate映射到DateTimetype,但是指定的值格式无效
2019-03-27T01:20:00 PM
Run Code Online (Sandbox Code Playgroud)
PM 部分无效,只需将其删除
2019-03-27T01:20:00
Run Code Online (Sandbox Code Playgroud)
还要确保所有其他字段都具有有效的值来解决您的问题。
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |