通过Angular传递的Web Api参数为null

时间:2018-08-15 13:52:22

标签: .net angular

因此,我试图通过Angular服务中的put调用将字符串传递给Web Api。该服务实际上在Web Api端调用该方法,但是参数始终通过null来传递。有人可以照亮一点,谢谢。

代码如下:

Web Api :(在第一个括号中设置了断点)

public void Put([FromBody]string userId)
{


} 

角度:

 UpdateManagerEmail(userId){
    userId = '577f1e6e-146d-49f1-a354-b31349e7cb49';
    const headers = new HttpHeaders();
    headers.append('Content-Type', 'application/json');

    this._http.put('http://localhost:428/api/User', {
        userId : userId
    }).subscribe(returnVal => {
      console.log('returned');
    });
  }

1 个答案:

答案 0 :(得分:1)

要让后端在已发送的请求正文中找到userId,它必须是其中的唯一值。您应该将content-type更改为:application/x-www-form-urlencoded; charset=UTF-8并发送没有密钥的数据。

在文档上备注:

  

在发送简单类型之前,请考虑将值包装为复杂类型。这为您提供了在服务器端进行模型验证的好处,并且在需要时可以更轻松地扩展模型。

来源:Sending simple types

此外,this blog比我解释得更好。