【发布时间】: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