asp.net 获取JSON值的POST请求无法转换为System.String,路径错误

s2j5cfk0  于 2022-12-15  发布在  .NET
关注(0)|答案(2)|浏览(152)

我正在向API端点http://localhost:20779/api/Account发出POST请求,并收到以下错误。
JSON值无法转换为System.String。路径:$|行号:0|行内字节位置:1.”
这是我用来发出POST请求的JSON。

{
    "EmailAddress": "hello@example.com",
    "Username": "example",
    "Password": "mypassword",
    "Status": "A",
    "CreatedOn": "2021-08-10 08:00:00"
}

请求命中POST方法。

namespace HelpDesk.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class AccountController : ControllerBase
    {
        // POST api/<AccountController>
        [HttpPost]
        public void Post([FromBody] string value)
        {
            var x = string.Empty;
        }
  
    }
}
owfi6suc

owfi6suc1#

必须创建一个视图模型类

public UserViewModel
{
public string EmailAddress { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Status { get; set; }
public DateTime CreatedOn { get; set; }
}

并固定动作

public IActionResult Post([FromBody] UserViewModel model)
{
            return Ok(model.Username);
}
3hvapo4f

3hvapo4f2#

尝试将[FromBody] string value更改为[FromBody] object content,然后如果要读取为字符串,请使用content.ToString()

相关问题