c# - 无法将参数传递给API

标签 c# angular typescript rest

我正在运行具有以下操作的 REST API 服务:

    [HttpPost]
    public FooResponse DoFoo(FooRequest request)
    //public FooResponse DoFoo([FromBody] FooRequest request)
    {
        return null;
    }

我的要求:

public class FooRequest
{
    public string FooId;
}

我有一个 Angular 客户端,它正在进行此调用:

startFoo(fooId: string)
{
const url = `${this.baseUrl}StartFoo`;
const params = new HttpParams()
.set('FooId', fooId);
console.log(`params : ${params}`);

const result = this.httpClient.post<fooItem>(url, {params}).toPromise();
return result;
}

当我从 PostMan 进行调用时,会填充 FooId,当我从 Angular 调用它时,会命中端点,但参数始终为 null。当我查看控制台日志时,参数就在那里。

我已经尝试过this解决方案,但它没有解决我的问题。

我错过了什么?

最佳答案

您应该在方法中添加 [FromBody] 属性。

  [HttpPost]
  public FooResponse DoFoo([FromBody] FooRequest request)
    {
        return null;
    }

当您向 api 发送请求时,您的请求正文必须为 json 格式。

var fooRequest = { FooId : 1};


const result = this.httpClient.post<fooItem>(url, JSON.stringify(fooRequest) ).toPromise();

我没有尝试,我想它会起作用。

关于c# - 无法将参数传递给API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58956838/

相关文章:

c# - 写入电子邮件 Windows 8.1 C# 时访问被拒绝异常

typescript - 仅黑白差异排除和省略(选择和排除) typescript

javascript - 使用函数柯里化(Currying)在 typescript 中构建实用程序类

reactjs - 尝试将 React Apollo Query 组件用于带有 typescript 的 GraphQL 查询导致错误

c# - 制作一个连续运行的 C# 应用程序

c# - 通过中介路由 WCF?

c# - 将实体分页类映射到 dto 分页类

angular - 如何为 Angular Material 2 对话框制作动画?

angular - 在 Angular 6 指令中捕捉鼠标中键单击

自定义响应式(Reactive)表单验证器中的 Angular 多个错误