【问题标题】:Angular 11 and .Net post method not workingAngular 11 和 .Net post 方法不起作用
【发布时间】:2021-08-15 13:45:18
【问题描述】:

我正在尝试将数据从 Angular 端发布到 .Net,但我没有在 Controller c# 处遇到断点。 我需要一些配置吗?我之前已经在 Angular 8 中以这种方式发送数据并且它正在工作。

c#

   public class UpdateViewModel
      {
        public int Id { get; set; }
        public string Title { get; set; }
      }


    [HttpPost]
    [Route("delete")]
    public void delete(UpdateViewModel model)
    {
        //return Ok();
    }

ts

  var model = {
  Id: 1,
  Title: 'test'
}



  return this.http.post(this.baseURL + "home/delete/", model)
  .pipe(
    retry(1),
    catchError(this.errorHandler)
  );

【问题讨论】:

  • 您确定这是正确的代码吗?你展示了一个带有“delete”路由的发布方法,但你展示了一个对“home/SearchConnections/”的调用。这根本不匹配。
  • 用“http.get”调用 Post 方法?并且 URL 看起来也有问题
  • 很抱歉错误的代码。现在它是正确的
  • 您能否更具体地说明您遇到了什么错误?是404吗?在这种情况下,可能是您的控制器缺少 [Route] 属性。是400吗?可能是您的服务器配置为期望 camelCase json 或其他内容。请求根本没有发送吗?可能你根本没有订阅 observable。这不起作用可能还有许多其他原因。
  • 是的,我确定我已经订阅了组件:/ 我没有收到任何错误:/ 什么也没发生

标签: c# angular typescript asp.net-core http-post


【解决方案1】:

angular 的 http 客户端是基于 observables 的。这意味着,只有在您订阅 observable 时才会发送请求。您可以使用 .subscribe().toPromise() 执行此操作。

对于您的代码:

  return this.http.post(this.baseURL + "home/delete/", model)
    .pipe(
      retry(1),
    )
    .subscribe({
      error: this.errorHandler
    });

【讨论】:

  • 谢谢!我确定我已经订阅了从服务调用此方法的组件:/
猜你喜欢
  • 2020-02-02
  • 1970-01-01
  • 2023-04-04
  • 2018-04-28
  • 1970-01-01
  • 2018-08-23
  • 2015-03-19
  • 2012-05-31
  • 2019-01-07
相关资源
最近更新 更多