将字符串从 Angular 传递到 API

Hyp*_*ate 3 javascript asp.net-mvc json typescript angular

我想通过 Angular 在我的 ASP.NET Core MVC API 控制器中填充一个字符串参数。

我有这个工作电话:

应用程序接口

//A class to wrap my string
public class Foo
{
  public string bar { get; set; }
}

[HttpPost]
public JsonResult GetDetails([FromBody] Foo bar) { ... }
Run Code Online (Sandbox Code Playgroud)

角度(服务)

public get() {
  let bar: any = new Object();
  bar.foo = 'Hello World';

  return this._httpClient.post('api/GetDetails', bar).toPromise();
}
Run Code Online (Sandbox Code Playgroud)

但我真正想要的是传递一个字符串而不必将它包装在这样的类中:

应用程序接口

[HttpPost]
public JsonResult GetDetails([FromBody] string bar) { ... }
Run Code Online (Sandbox Code Playgroud)

角度(服务)

public get() {
let bar: string = "Hello World";

return this._httpClient.post('api/GetDetails', bar).toPromise();
}
Run Code Online (Sandbox Code Playgroud)

但是我收到错误,比如它是不受支持的媒体类型或“bar”保持为空。
只传递一个值的正确语法是什么?
另一件事是,我可以将一个整数从 Angular 传递给 API,但不是字符串。

Roh*_*dal 5

尝试这个 :

let bar = JSON.stringify({'foo' : 'Hello World'});
let body = new HttpParams();
body = body.set('bar', bar);

http.post('/api/GetDetails', body).subscribe();
Run Code Online (Sandbox Code Playgroud)