从Angular4 app

时间:2018-02-18 13:25:40

标签: c# asp.net angular asp.net-web-api http-post

我是Angular4的新手并且在某种情况下能够快速提供这些东西,所以没有时间彻底学习它,所以请原谅我的问题是否幼稚:

Asp.Net Web API我必须从Angular4应用程序中调用Confirmemail API,看起来像这样:

Asp.net WebApi:

[HttpPost]
public async Task<object>ConfirmEmail([FromBody] string userid,[FromBody] string code)
{
}

在Angular4服务API中:

ConfirmEmail(userid,code)
{           
    let url =`api/account/ConfirmEmail`;
    let data= `userid=${userid}&code=${code}`;
    console.log(data);
    return this.http.post(url,data);
}

在这里,我在console.log中检查了数据是否正常,但在webapi方面,我发现这些字符串为空。我尝试删除[FromBody],但它并没有与我合作。

我真的很无知缺少什么,几乎有一天准备所有这些东西,但没有取得任何成功。你们有解决方法吗?

2 个答案:

答案 0 :(得分:2)

您可以创建userid和code的对象,并使用JSON.stringify(data);

转换为字符串
let url =`api/account/ConfirmEmail`;
let userObj = {'userid':userid,'code':code};
let data= JSON.stringify(userObj);
return this.http.post(url,data);

并以

的形式访问它
[HttpPost]
public async Task<object>ConfirmEmail([FromBody] User userObj)
{

}

答案 1 :(得分:0)

对于来自角度应用的post的{​​{1}}数据,请在角度中尝试此操作:

API

并在let url ="api/account/ConfirmEmail"; var userInfo = { "userid":userid, "code":code } let content = JSON.stringify(userInfo); let headers = new HttpHeaders(); headers.set("Content-Type", "application/json"); return this.http.post(url, content, { headers: headers, responseType: 'text'}); 中接收您的请求正文并反序列化

API

要在网址中发送您的数据,您应该使用http [HttpPost] public async Task<object>ConfirmEmail([FromBody] UserInfo userInfo) { } Public Class UserInfo { public long userid {get; set;} public long code {get; set;} } 方法,如下所示:

<强>角:

get

Web API:

let Params = new HttpParams();

Params = Params.append("userid", userid);
Params = Params.append("code", code);

return this.http.get(url , { params: Params });
相关问题