我是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],但它并没有与我合作。
我真的很无知缺少什么,几乎有一天准备所有这些东西,但没有取得任何成功。你们有解决方法吗?
答案 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 });