【问题标题】:Post method returns 404 in Asp.net core 2.2 Web API ControllerPost 方法在 Asp.net core 2.2 Web API 控制器中返回 404
【发布时间】:2019-02-27 04:54:52
【问题描述】:

我知道我不是第一个问这个问题的人。但是我找不到解决方案,我尝试了所有方法。

我正在尝试从 Angular 6 应用程序调用 API 发布操作。我得到了 404 Not Found

API 控制器。

    [Route("api/[controller]/{action}")]
    [ApiController]

    public class EmployeeMasterController : ControllerBase
    {

     [HttpPost]
        public async Task<IActionResult> CreateEmployee([FromBody] Employee_Master_Model employee_Master_Model)
        {
            try
            {
               //Work arround
                return Ok();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

}

角度调用

API_URL : string = 'http://localhost:51951/';

  CreateUpdateEmployees(mEmployeeForm){
    const body = mEmployeeForm;
    return this.http.post(this.API_URL+'api/EmployeeMaster/CreateEmployee',body );
  }

【问题讨论】:

  • 您是否使用 PostMan 或任何其他工具测试过您的 API?
  • @Zhu : 请分享asp.net核心日志
  • @Zhu:将控制器路由更新到“api/[controller]”并使用 [HttpPost("CreateEmployee")] 进行 CreateEmployee 操作

标签: c# .net asp.net-web-api asp.net-core


【解决方案1】:

检查请求的url是否正确,url的域是否以httphttps开头?

如果您在 request 中发送 formdata 对象,您应该删除 [FromBody] 或在 CreateEmployeeaction 中使用 [FromForm]

如果您想将 Json 对象发送到控制器,请在您的 Angular 调用中尝试以下更改

CreateUpdateEmployees(mEmployeeForm){
  var url = this.API_URL + 'api/SampleData/CreateEmployee';
  const body = mEmployeeForm;
  return this.http.post(url, JSON.stringify(body), { headers: { "Content-Type": "application/json"} });
}

【讨论】:

    猜你喜欢
    • 2017-12-31
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多