0

我有一个 .net core 2.1 解决方案,包括一个 Web 应用程序、一个 API 和一堆库。

我正在尝试将 JSON 发布到 Web 项目中的控制器中,但它不起作用 - 我在 JSON 中设置的属性似乎只是设置为它们的默认值。

我尝试过使用和不使用 [FromBody] 属性,但都没有运气。

这就是我在控制器中所拥有的

[HttpPost]
public async Task<JsonResult> Search([FromBody] int test)
{
    Json(new
    {
        IThinkYouPassed=test,
    });
}

那里没有什么不寻常的地方。

我使用 PostMan 发布到此,正文如下:

{
    "test":"234"
}

如果我在动作中放置一个断点并点击它,我可以看到 test 的值为 0。

我对 API 项目中的操作没有这个问题,因此 Web 项目中一定缺少一些东西 - 需要进行一些设置才能使其正常工作?

使用 jquery 发布数据时,我得到了相同的结果,所以我相当确定问题出在 web 应用程序上,而不是我在邮递员中遗漏的东西。

我认为可能没有指定 InputFormatter,但我告诉我这应该作为 UseMVC 扩展的一部分自动发生?

对此的任何帮助表示赞赏。

4

1 回答 1

1

Yourjson是一个包含该test字段的对象。你应该改变

public async Task<JsonResult> Search([FromBody] int test)

public async Task<JsonResult> Search([FromBody] TestDto testDto)

其中TestDto.cs包含测试字段

public class TestDto {
  public int Test { get; set; }
}
于 2020-08-18T17:36:37.407 回答