如何从角度为4的httppost方法将整数值传递给Controller?

时间:2018-01-15 08:17:21

标签: angular asp.net-web-api

在我们的Angular4 MVC应用程序中,我们使用http服务从数据层获取数据。 请参阅代码段

this.http.post(_this.baseUrl + "api/User/" + user.UserId)

在API控制器中,我没有获得UserId值。

如果我传递字符串值,则没有问题。

任何人请帮助解决问题。

3 个答案:

答案 0 :(得分:1)

根据您使用的网址,要进行发布呼叫,您只需创建控制器操作,如下所示: -

[HttpPost]
public IActionResult Post([FromRoute]int userId)
{
    var id = userId;
    return Ok();
}

如果用户ID是字符串,那么

[HttpPost]
public IActionResult Post([FromRoute]string userId)
{
    var id = userId;
    return Ok();
}

答案 1 :(得分:1)

试试这个

this.http.post(_this.baseUrl + "api/User/MethodName?userId=1");

控制器

[HttpGet]
public string MethodName(long userId)
{
     //do you operation
}

请安装Postman或类似客户端

,检查网址是否正确

答案 2 :(得分:0)

让我们说,你有这样的事情:

public deleteFile( userId: number, fileName: string ): Observable<boolean> {
    const headers = new Headers( { 'Content-Type': 'application/json' } );
    /* The option withCredentials: true is used for the CORS variant, that is, when our REST server is on a different WEB server than our node.js server, where my Angular2 development application is.
     */
    const options = new RequestOptions( { headers: headers, withCredentials: true } );

    return this.http.post( this.url + '/deleteFile/' + userId + '/' + fileName, null, options )
        .map( this.extractData )
        .catch( this.handleError );
}

然后服务功能应如下所示:

.hs-button {
  font-size: 16px;
  font-family: "Raleway", sans-serif;
  text-transform: uppercase;
  line-height: 1em;
  color: #333333;
  letter-spacing: 0;
  background: #fff336;
  display: inline-block;
  position: relative;
  cursor: pointer;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  -webkit-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
input[type="submit"]:hover {
  text-decoration: none;
  transform: translateY(0px);
  -webkit-transform: translateY(0px);
}
input[type="submit"]:hover {
    border: 3px solid #000;
    background-color: #000;
    color: #fff336;
}
input[type="submit"]:hover:after {
  height: 100%;
}
input[type="submit"]:after {
  content: "";
  background: #000;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0;
  z-index: -1;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

这是我不久前用于我的应用程序的代码的一个简单示例,它应该可以工作。