详细信息: 我正在尝试在 asp.net Controller 内设置一个简单的 get/post 方法,并使用 postman 来设置其设置是否正确。我在 stackoverflow 上寻找过类似的问题,但他们没有解决我的问题
错误: 我的 Get 方法工作正常,但我的 post 方法出现以下错误。请参阅下面的 postman :
调试:如果我在 post 方法中添加断行。它永远不会到达断裂线
asp.net 中的代码
[ApiController]
[Route("[controller]")]
public class CoursesTakenController : Controller
{
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] {"value", "value" }
}
[HttpPost]
public Task<ActionResult<string>> Post([FromBody] string values)
{
return Ok(values);
}
}
我也尝试过这个:但不起作用
[HttpPost]
public async Task<IActionResult> Post([FromBody] string values)
{
return Ok();
}
最佳答案
您正在发布一个 json 对象,而该方法需要一个字符串。 System.Text.Json
(ASP.NET Core 使用的默认 json 序列化程序)在 JsonTokenType
中受到相当大的限制。处理,因此要么发布一个字符串,即仅 "RandomText"
(或编码为字符串 json 对象 - {\"values\":\"asdasdasd\"}
)或更改接受对象的操作:
public class Tmp
{
public required string Values { get; set; }
}
[HttpPost]
public async Task<ActionResult<string>> Post([FromBody] Tmp values)
{
...
}
关于c# - 值字段是必需的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75365195/