Я изучаю angular и имею следующую проблему:
мой веб-API ожидает этого dto:
public int? Id{get;set;}
public DateTime? BirthDate { get; set; }
public string Name{get;set;}
public string DisplayName{get;set;}
public char? Gender{get;set;}
и я пытаюсь отправить его из моего углового приложения:
export interface UserDto {
id?: number;
name?: string;
displayName?: string;
birthDate?: Date;
gender?: string;
}
и я отправляю это:
const endpoint = ApiQueryService.ApiEndpoint + this.postUserEndpoint;
let result: number;
this.client.post<number>(endpoint, {body: JSON.stringify(dto.userDto)}).subscribe(x =>
result = x);
Я попытался обнулить поле даты и времени:
dto.userDto.birthDate = null;
но мой веб-API всегда извлекает null из этого API...
API работает правильно, у меня есть 2 других клиента, которые работают
Что я делаю не так?
и второй вопрос: как я могу также получить весь HttpResponse с сервера как
событие, если я отправлю его как «userDto» или без этого, я все равно получу нуль в API
и все же вы приняли ответ, говорящий то же самое, что и мой комментарий, так что ... я думаю, это все-таки сработало.





Если вы считаете, что вам не нужно оборачивать DTO в другой объект или приводить его в строку. Не могли бы вы попробовать:
this.client.post<number>(endpoint, dto.userDto).subscribe(x =>
result = x)
Действительно ли ваш бэкэнд ожидает объект с единственным свойством с именем «тело»? Потому что это то, что отправляет ваш интерфейс. Используйте вкладку «Сеть» инструментов разработчика вашего браузера, и вы увидите, что вы отправляете.