【问题标题】:getting error in both postman and angular邮递员和角度都出现错误
【发布时间】:2019-11-04 19:06:07
【问题描述】:

我有一个有角度的前端,后端在 .net 中。当我尝试在 .net 端调用 post 方法时出现错误。我试图在 Postman 中调用相同的方法并得到错误。不知道我做错了什么。以下是我在 .net 中的 post 方法:

 [HttpPost()]
        public async Task<ActionResult<AllItProjectsList>> PostAllItProjectsList(AllItProjectsList allItProjectsList)
        {
            _context.AllItProjectsList.Add(allItProjectsList);
            await _context.SaveChangesAsync();

            return CreatedAtAction("GetAllItProjectsList", new { id = allItProjectsList.ProjectId }, allItProjectsList);
        }

当我从 Angular 调用此方法时,出现以下错误:

将值 {null} 转换为类型“System.Int32”时出错。路径 'projectId',第 1 行,位置 437。”

以下是屏幕截图:

当我尝试在邮递员中调用以下 URL 时:

https://localhost:44328/api/AllItProjectsLists?Name=Test&Description=TestDec

我收到错误消息 ReferenceError: Name is not defined

以下是屏幕截图:

allitprjectlists 在我的模型类中定义。下面是定义:

使用系统; 使用 System.Collections.Generic;

命名空间 WebAPI.Models {

  public partial class AllItProjectsList
    {
        public string Name { get; set; }
        public string Description { get; set; }
        public string Type { get; set; }
        public string SubType { get; set; }
        public string ExecutiveSponsor { get; set; }
        public string Division { get; set; }
        public string Section { get; set; }
        public string Status { get; set; }
        public string AppDev { get; set; }
        public double? AppDevPriority { get; set; }
        public double? AppDevEffort { get; set; }
        public string ProjectRequestDate { get; set; }
        public string ProjectApprovalDate { get; set; }
        public DateTime? StartDate { get; set; }
        public DateTime? ExpectedCompletionDate { get; set; }
        public DateTime? ActualCompletionDate { get; set; }
        public string Team { get; set; }
        public string SurveyId { get; set; }
        public int ProjectId { get; set; }
    }
}

我从 Angular 到 .net 的调用如下:

 AddProjectDetails(project: AllItProject) {
     const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };
     return this.http.post<AllItProject>(ROOT_URL , project, httpOptions);
}

除 ProjectId 外,其他字段都不是必需的。 ProjectId 是数据库中的标识字段。我不确定为什么 Angular 会抱怨 projectId 为 null 而邮递员抛出名称引用错误。

下面是项目对象的值:

任何帮助将不胜感激。

【问题讨论】:

  • 发送请求时能否检查项目对象的值(从 return this.http.post(ROOT_URL , project, httpOptions); })。
  • 我把项目对象的图片放在上面。它有一些额外的字段,但它们都在我的模型类中定义。项目对象中的项目ID为空字符串。

标签: .net angular asp.net-core


【解决方案1】:

只要我把 Observable 放在这个方法前面

AddProjectDetails(project: AllItProject): Observable<AllItProject>

代码开始工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-14
    • 2019-08-05
    • 1970-01-01
    • 2020-07-15
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    相关资源
    最近更新 更多