如何将数据从 Angular 9 UI 传递到 .Net 3.1 控制器

问题描述 投票:0回答:1

我已经尝试过:

  1. 按照多个地方的建议将 CORS 代码添加到启动中
  2. 确保 Angular .ts 对象属性与 .net 对象匹配 属性、拼写和大小写

我将 console.log 放入角度代码中,并且对象正在填充,但是当代码遇到控制器上的断点时,该对象始终为空。

下面是 Angular 和 .Net 代码...我还能尝试或重试什么?

    //.net class
    public class AccountLookupRequest
    {
         public string FILENO { get; set; }
         public string AccountName { get; set; }
         public string SSN { get; set; }
    }
    
    
    //angular class
    export class AccountLookupRequest{
    
      public FILENO: string;
      public AccountName: string;
      public SSN: string;
    
      constructor() { }
    }


//angular service
////try1
//getAccounts(accountlookup: AccountLookupRequest) {
//  //log the input
//  console.log('accountlookup', accountlookup);
//  //serialize accountlookup object to json
//  return this.http.post<any>(this._AccountLookup, accountlookup)
//    .pipe(
//      map(response => {
//        console.log('response', response);
//        return response;
//      })
//    );
//}

//try2
getAccounts(accountlookup: AccountLookupRequest):Observable<any> {
  console.log('accountlookup', accountlookup);
  const httpOptions = {
    headers: new HttpHeaders({
      'Content-Type': 'application/json'
    })
  };
  return this.http.post(this._AccountLookup, accountlookup, httpOptions);
}


//.net controller 

        //try1 - jsonInput var is null
        //public IActionResult GetAccounts(string jsonInput) 
        //{
        //    List<AccountLookupResponse> results = new List<AccountLookupResponse>();
        //    try
        //    {
        //        AccountLookupRequest input = JsonConvert.DeserializeObject<AccountLookupRequest>(jsonInput);
        //        results = _clsRepo.GetAccounts(input);
        //    }
        //    catch (Exception ex)
        //    {
        //        return StatusCode(StatusCodes.Status500InternalServerError, new { Message = $"{ex.Message}\n\n{ex.StackTrace}" });
        //    }
        //    return Ok(results);
        //}

        //try2 - request var is null
        public IActionResult GetAccounts([FromBody] AccountLookupRequest request) 
        {
            List<AccountLookupResponse> results = new List<AccountLookupResponse>();
            try
            {
                results = _clsRepo.GetAccounts(request);
            }
            catch (Exception ex)
            {
                return StatusCode(StatusCodes.Status500InternalServerError, new { Message = $"{ex.Message}\n\n{ex.StackTrace}" });
            }
            return Ok(results);
        }
.net angular http post
1个回答
0
投票

我认为您没有指定可能是问题所在的发布请求!

//  [Route("<<enter route also if needed>>")]
[HttpPost]
public IActionResult GetAccounts([FromBody] AccountLookupRequest request) 
    {
        List<AccountLookupResponse> results = new List<AccountLookupResponse>();
        try
        {
            results = _clsRepo.GetAccounts(request);
        }
        catch (Exception ex)
        {
            return StatusCode(StatusCodes.Status500InternalServerError, new { Message = $"{ex.Message}\n\n{ex.StackTrace}" });
        }
        return Ok(results);
    }
© www.soinside.com 2019 - 2024. All rights reserved.