Класс component.ts выдает ошибку, когда тип возвращаемого значения - iActionResult - PullRequest
0 голосов
/ 11 сентября 2018

Я сейчас немного запутался.Всякий раз, когда я возвращаю void из моего класса контроллера, все отлично работает.

мой класс controller.cs.

[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
    [HttpPut("[action]")]
    public void EditEmployee(Employee employee)
    {
        if (ModelState.IsValid)
        {
            _repo.edit(employee);
            _repo.Save();
           // return Ok($"update was successful for {employee}");
        }   
      //  return BadRequest("Something Went Wrong");

    }

мой класс service.ts

 updateEmployee(employee) {
  let token = localStorage.getItem("jwt");
  return this._http.put('api/Employee/EditEmployee', employee, {
    headers: new HttpHeaders({
      "Authorization": "Bearer " + token,
      "Content-Type": "application/json"
  })
})

}

и мой component.ts class

onSubmit(employeeForm: NgForm) {
//console.log(employeeForm.value);
this._employeeService.updateEmployee(employeeForm.value).subscribe(
  success => {
    this.Message = "Record Uploaded Successfully";
  },

  err => this.Message = "An error Occurred"
);

приведенный выше пример кода работает как положено и возвращает Запись успешно загружена

, но всякий раз, когда я меняю тип возвращаемого значения в моем классе controller.cs на IActionResult,

   [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
    [HttpPut("[action]")]
    public IActionResult EditEmployee(Employee employee)
    {
        if (ModelState.IsValid)
        {
            _repo.edit(employee);
            _repo.Save();
            return Ok($"update was successful for {employee}");
        }   
       return BadRequest("Something Went Wrong");
    }

, он обновляет записьуспешно в моей базе данных, но возвращает Произошла ошибка в моем компоненте class.ts

это на github

я хочу понять, чтопроисходит и почему я испытываю эту ошибку.

Изображение, когда файл controller.cs возвращает void

и

Изображение, когда controller.csфайл возвращает IActionResult

1 Ответ

0 голосов
/ 12 сентября 2018

Возвращает объект json из вашего класса controller.cs, а не строковый литерал

[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[HttpPut("[action]")]
public IActionResult EditEmployee(Employee employee)
{
    if (ModelState.IsValid)
    {
        _repo.edit(employee);
        _repo.Save();
        return Json(new { Message="Update was successful!"});
    }   
   return BadRequest(new { Message="Something went wrong!"});
}
...