Запрос Angular6 POST остается в состоянии ожидания - PullRequest
0 голосов
/ 27 июня 2019

Здравствуйте. Я пытаюсь отправить запрос от angular6 на основной веб-интерфейс asp.net, но, к сожалению, запрос никогда не поступает на сервер и всегда остается в состоянии «ожидания».

Моя модель на сервере:

public class MainVM
{
        public int ID { get; set; }
        public string Name { get; set; }
        public bool IsActive { get; set; }
        public int DepartmentID { get; set; }
        public IFormFile Logo { get; set; }
        public List<ChildVM> ListChilds { get; set; }

}

public class ChildVM
{
        public string Name { get; set; }
        public int SequenceNo { get; set; }
        public int NoOfPrices { get; set; }
        public IFormFile Image { get; set; }
}

и конечная точка:

[HttpPost]
[Consumes("multipart/form-data")]
public void Post([FromForm]MainVM data)
{
}

Служба Angular6, которую я использую для публикации данных из angular:

const formData: FormData = new FormData();
    //formData.append('Logo', logo, logo.name);
    formData.append('Name', obj.Name);
    formData.append('ListChilds[0].Name', obj.ListChilds[0].Name);
    formData.append('ListChilds[0].SequenceNo', String(obj.ListChilds[0].SequenceNo));
    formData.append('ListChilds[0].NoOfPrices', String(obj.ListChilds[0].NoOfPrices));



    return this.http.post<MainVM>('http://localhost:60458/api/mycontroller/', formData).pipe(
      map((res) => { console.log('res'); return res; }),
      catchError(this.handleError('lpc', null))
    );

Когда я закомментирую код, связанный с ListChildsв formData запрос получает в веб-API, но запрос не получает в веб-API с ListChilds.

Я думаю, что я что-то упустил.

Пожалуйста, руководство.

Спасибовы.

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Наконец выяснилось, что это ошибка в Asp.net Core 2.2, я нашел ее здесь:

https://github.com/aspnet/AspNetCore/issues/4802

Проблема в том, что когда мы взяли тип IFormFile в дочерней модели, программа Asp.net core 2.2 начинает зависать (как описано в ссылке выше).

В качестве обходного пути я удаляю следующую строку из ChildVM:

public IFormFile Image { get; set; }

и добавил следующую строку в MainVM:

public List<IFormFile> ListImage { get; set; }
0 голосов
/ 27 июня 2019

Попробуйте это -

 formData.append('ListChilds', JSON.stringify(obj.ListChilds));

Он должен заполнить все значения из obj.ListChilds в ListChilds.

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