代码之家  ›  专栏  ›  技术社区  ›  Jaidev Khatri

Asp。net core webapi从Angular4应用程序获取发布的空值

  •  4
  • Jaidev Khatri  · 技术社区  · 8 年前

    我是新手 Angular4 在这种情况下,要快速交付材料,所以没有时间彻底学习,所以如果我的问题看起来很幼稚,请原谅:

    从我的 Asp.Net Web API 我有 Confirmemail API 必须从Angular4应用程序调用,如下所示:

    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);
    }
    

    在这里,我签入了控制台。记录正确的数据,但在webapi方面,我发现这些字符串为空。我试着[从身体上]取下,但对我没有用。

    我真的不知道错过了什么,几乎一天就准备好了所有这些东西,但没有取得任何成功。你们有什么解决办法吗?

    2 回复  |  直到 8 年前
        1
  •  2
  •   Sajeetharan    8 年前

    您可以创建一个同时包含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)
    {
    
    }
    
        2
  •  1
  •   Hasan Fathi    8 年前

    对于 post 数据到您的 API 从angular应用程序尝试此 有棱角的 :

    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'});
    

    在你的 美国石油学会 用于接收您的请求正文和 反序列化 这是:

    [HttpPost]
    public async Task<object>ConfirmEmail([FromBody] UserInfo userInfo)
    {
    
    }
    
    Public Class UserInfo
    {
      public long userid {get; set;}
      public long code {get; set;}
    }
    

    用于发送数据 url地址 您应该使用http get 方法如下:

    角度:

    let Params = new HttpParams();
    
    Params = Params.append("userid", userid);
    Params = Params.append("code", code);
    
    return this.http.get(url , { params: Params });
    

    Web API:

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