【问题标题】:JSON data posts from Angular 2 front end to Asp.Net Core web api - loses valuesJSON 数据从 Angular 2 前端发布到 Asp.Net Core web api - 丢失值
【发布时间】:2017-09-27 04:26:36
【问题描述】:

我正在从 Angular 2 前端发送值,如下所示:

  censusManagementSearch(search: any): Observable<any> {
    let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem('token') });
        let options = new RequestOptions({ headers: headers });
    let body = JSON.stringify({ practice: search.practice, location: search.location, name: search.name });
    return this.http.post(this._api.apiUrl + 'censusmanagement', body, options)
      .map((response: Response) => {
        return response;
    })
      .catch((err: any) => {
        return Observable.throw(err.json().error || 'Server error');
    });
  }

那里一切正常。它将进入 C# 后端,如下所示。如果重要的话,那就是 ASP.Net 核心 web api

[HttpPost]
public IActionResult PostCensusManagement([FromBody] int practice, int location, string name)

当我对此设置断点时,整数的值为 0,字符串的值为 ""。我尝试将[FromBody] 取出并用其他选项替换它。每次值都是空白的。

这是显示在 Chrome 中发送的值的图像

【问题讨论】:

    标签: angular asp.net-core asp.net-core-mvc asp.net-core-webapi


    【解决方案1】:

    我找到了答案。我会把它留在这里,以防其他人遇到这个问题。为了让 web api 看到数据,我必须为它创建一个类。

    public class CensusSearch
    {
        public int location { get; set; }
        public int practice { get; set; }
        public string name { get; set; }
    }
    

    并将控制器更改为:

        [HttpPost]
        public IActionResult PostCensusManagement([FromBody] CensusSearch search)
    

    【讨论】:

    • 还将您的 ng 服务方法中的更改添加为 'Observable' 到 Observable 并且您可以使用字符串化的 CensusSearch 对象更改正文
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 2017-01-16
    • 1970-01-01
    • 2017-08-05
    • 2018-12-19
    相关资源
    最近更新 更多