angular не получает сообщение об исключении из ядра .net - PullRequest
0 голосов
/ 28 октября 2018

Итак, я хотел бы получить в консоли массив json с сообщением, которое было бы равно «У вашего прямого менеджера нет учетной записи для вашего региона».

Но все, что я получаю, - это «Http response response»для https://localhost:44385/api/Option/Post: 500 Внутренняя ошибка сервера "

Примечание. Если посмотреть на инструменты dev -> network -> post -> response, то отобразятся html и css с правильным сообщением об ошибке, но без понятиякак вывести его оттуда.

Контроллер

[HttpPost("[action]")]
public void Post(Option option)
{
    throw new NoBudgetAccountException();
}

Исключение

[Serializable]
public class NoBudgetAccountException : Exception
{
    public NoBudgetAccountException() : base("Your direct manager have no account for your area.")
    {
    }
}

Угловой apiService

addOrUpdateOption(option: ITrainingOption): Observable<Response> {
    return this.post<Response>("api/Option/Post", option);
  }

Угловой компонент

submitOption(option: ITrainingOption) {
        this.apiService.addOrUpdateOption(option).subscribe(() => {
            this.isAddOptionShown = false;
            this.getHeadlines(this.selectedYear);
          },
          err => { console.log(err); });
      }

1 Ответ

0 голосов
/ 28 октября 2018

обычно с .net, когда вы делаете что-то вроде

throw new Exception("This is a custom exception");

На самом деле это сообщение не выдается, а выдает HTML-страницу с ошибкой enter image description here

Если вы хотите вернуть сообщение и разобрать его в угловом формате, используйте взамен IActionResult и верните BadRequest ("message")

    [HttpPost("[action]")]
    public IActionResult test(Option option)
    {
        return BadRequest("This is an error message");
    }

После этого ваше сообщение об ошибке должно появиться в err.error

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...