Я понял, что это происходит, потому что я возвращаю HttpStatusCode.Created
для начального действия (создание пользователя), однако возвращаю HttpStatusCode.NoContent
для последующих действий над тем же пользователем.
if (result == RegisterUserResult.AlreadyExists)
{
statusCode = HttpStatusCode.NoContent;
}
Пока HttpStatusCode.NoContent является успешным кодом состояния, он не позволит предоставить возвращаемое значение в методе Request.CreateResponse , возвращая значение по умолчанию вашего предполагаемого типа возвращаемого значения. Значение
Request.CreateResponse(statusCode, "True"); // returns null on client-side
Request.CreateResponse(statusCode, true); // returns false on client-side
Другие коды успеха, такие как HttpStatusCode.OK или HttpStatusCode.Created, будут обеспечивать возвращение предполагаемого значения.