c# - 值字段是必需的

标签 c# asp.net asp.net-mvc asp.net-core asp.net-web-api

详细信息: 我正在尝试在 asp.net Controller 内设置一个简单的 get/post 方法,并使用 postman 来设置其设置是否正确。我在 stackoverflow 上寻找过类似的问题,但他们没有解决我的问题

错误: 我的 Get 方法工作正常,但我的 post 方法出现以下错误。请参阅下面的 postman :

调试:如果我在 post 方法中添加断行。它永远不会到达断裂线

enter image description here

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/

相关文章:

asp.net-mvc - 为什么 Asp.net 部分 View 不返回?

c# - 如何将模型验证装饰输出到我的 View ?

c# - 跨线程操作无效 : Control 'label1' accessed from a thread other than the thread it was created on

c# - Swagger UI 显示带有点符号的 asp.net webapi 参数名称

javascript - 如何在 MVC 中使用警告框而不重定向到其他页面?

c# - List<T> 上的自定义 OrderBy

c# - 无法加载文件或程序集 'DotNetOpenAuth.Core

c# - 如何在asp.net core中从客户端调用web api方法?

c# - 如何通过Uri在浏览器中打开html文档

c# - 在 monoTouch 中用 "\n"分隔字符串