我在Visual Studio中使用Blazor WebAssembly App Template创建了一个新的项目/解决方案.

然后将此REST Api方法添加到现有的WeatherForecastControl类中:

        [HttpPost]
        public async Task<ActionResult> Post(string str)
        {
            return Ok();
        }

然后我试着从Blazor页面调用它:

@inject HttpClient Http
...
    private WeatherForecast[]? forecasts;

    protected override async Task OnInitializedAsync()
    {
        forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("WeatherForecast"); // this works

        var reply = await Http.PostAsJsonAsync("WeatherForecast", "test the west"); // this returns 400 Bad Request
    }

当try 使用HTTPPut时,同样的错误请求也会发生.

我首先try 了我自己的应用程序(它也是基于相同的模板构建的). 也try 了使用HttpClient.PostAsync.这里也有同样的错误.

推荐答案

按照惯例,ASP.NET希望在URL中传递此参数.

在端点上加[FromBody]:

  [HttpPost]
  public async Task<ActionResult> Post([FromBody]string str)
  {
      return Ok();
  }

Csharp相关问答推荐

List T.AddRange在传递ConcurrentDictionary作为参数时引发ArgumentExcellent

System.Data.SQLite:判断SQLite数据库是否为空(任何表中至少有一行)

更新数据库中的对象失败,原因是:Microsoft. EntityFrame Core. GbUpdateConcurrencyResponse'

O(N)测试失败

如何修改中间件或其注册以正确使用作用域服务?

如何注册实现同一接口的多个服务并注入到控制器构造函数中

无法通过绑定禁用条目

在.NET核心项目中创建Startup.cs比在Program.cs中注册服务好吗?

UWP应用程序try 将打包的本机.exe文件加载为C#程序集

try 使用C#ASP.NET收集WMI信息时访问被拒绝,但在PowerShell中工作

在C#中过滤Excel文件

Regex字母数字校验

如何从Azure函数使用Graph API(SDK 5.35)中的[FindMeetingTimes]

如何在C#中正确类型化带有泛型的嵌套类

是否可以从IQueryable T中获取一个IdentyEntry T>

为什么在使用JsonDerivedType序列化泛型时缺少$type?

如何将 colored颜色 转换为KnownColor名称?

如何在C# WinForm控件中使用Windows 10/11的黑暗主题?

为什么Visual Studio 2022建议IDE0251将我的方法设置为只读?

无法停止PowerShell中的低级挂钩(c#挂钩)