Скопировано так же, как ответили вчера: Попытка получить указанный c объект 'Пользователь', возвращенный из бэкэнда.
Angular:
this.authService.getUserByName(selectedName)
.subscribe( (response: User) =>
{ const selectedUser = response;
const firstname = selectedUser.FirstName;
this.f.FirstName.setValue(firstname); },
(error) =>
{ console.log(error); }
);
authService:
getUserByName(name: string): Observable<any> {
const url = this.cache.StorageGet('baseUrl') + 'auth/user/' + name;
return this.http.get(url);
}
бэкэнд .netCore
[HttpGet("user/{userName}")]
public async Task<IActionResult> GetUserbyName(string userName)
{
User userFromRepo = await _repo.GetUserbyName(userName.ToLower());
if (userFromRepo == null)
return BadRequest();
return Ok(userFromRepo);
}
Выше Ok (userFromRepo):
Обратите внимание на все имена полей с заглавной буквы (такие же, как в базе данных а также в «Пользователь», как определено в интерфейсе и бэкэнде). Класс пользователя Angular:
export class User {
Id: string;
FirstName: string;
LastName: string;
Phone1: string;
Phone2: string;
KnownAs: string;
EmailAddress: string;
Username: string;
PasswordHash: any;
PasswordSalt: any;
Question: string;
Answer: string;
ProjectAdmin: number;
SystemAdmin: number;
}
По возвращении во внешний интерфейс (основная функция, которая вызвала службу):
Поля, показанные в снимке отладчика все первые буквы в нижнем регистре. Мало того, что selectedUser.FirstName отображается как «undefined», но selectedUser.firstName выдает ошибку компиляции (конечно).
Таким образом: ответ не передается пользователю?
Что я отсутствует (кроме мозгов, опыта, ...)?
Заранее спасибо.
Йог