У меня есть вызов API C #, который возвращает значение true или false. Когда он возвращает ложное значение, он возвращается как пустой объект, но только в Angular. Когда я тестирую тот же вызов с теми же значениями в REST-клиенте, я получаю ложное значение, которое я ожидаю.
Есть ли причина, по которой я получаю пустой объект вместо ложного результата? Я уже проверил, что значения правильно передаются в API из приложения Angular (которым они являются), и я добавил точку останова в метод C #, чтобы проверить, что при выходе из API это определенно ложный результат и не пустой объект.
Метод C # выглядит следующим образом:
// Check if trailblazer is on journey
[Route("Journey/TrailblazerRegistered/{journeyId}/{username}")]
[HttpGet]
public IHttpActionResult IsTrailblazerRegistered(string journeyId, string username)
{
// First we assume the user is not registered
bool UserRegistered = false;
// Make sure we have a guid and a user
if (journeyId == null || username == null || username == "") return NotFound();
// If we do then get the user guid
User UserDb = WmData.Users.FirstOrDefault(u => u.Username == username);
// Check we've got a user and if we have get the GUIDs
if (UserDb == null) return NotFound();
Guid UserGuid = UserDb.UserId;
Guid JourneyGuid = new Guid(journeyId);
// List of Trailblazers for this Journey
List<UserJourney> Trailblazers = WmData.UserJourneys.Where(j => j.JourneyId == JourneyGuid).ToList();
// See if we can find our user in that list
UserJourney RegisteredUser = Trailblazers.Find(u => u.UserId == UserGuid);
// Did we find a user?
if (RegisteredUser != null) UserRegistered = true;
// Return true / false
return Ok(UserRegistered);
}
И вызов API со стороны Angular:
// Check if Trailblazer is already on Journey
userRegisteredToJourney() {
this._wmapi
.getService("Journey/TrailblazerRegistered/" + this.id + "/" + this._wmapi.tempuser)
.then((result) => {
this.userSignedToJourney = result;
console.log("Journey/TrailblazerRegistered/" + this.id + "/" + this._wmapi.tempuser);
})
.catch(error => console.log(error));
}