Ваша проблема в том, что вы НЕ возвращаете СПИСОК (или Массив) из WEBAPI, НО вы возвращаете ОБЪЕКТ ... и метод Filter JS работает на ARRAY
, поэтому здесь вам не нужнометод фильтра, потому что вы ищете имя пользователя (и у вас не может быть более одного пользователя в Identity Asp.NET с двумя похожими именами пользователей)
, поэтому попробуйте это в своем WEB API вернуть bool:
[HttpGet]
[AllowAnonymous]
[Route("api/TakeUserName/{username}")]
public async<IHttpActionResult> TakeUserName(string username) //<-- IHttpActionResult is better
{
var userStore = new UserStore<ApplicationUser>(new ApplicationDbContext());
var manager = new UserManager<ApplicationUser>(userStore);
var result =await userStore.FindByNameAsync(username);
return (result==null || !result.IsSuccess //<-- not sure for this prorperty name) ? Ok(false) : Ok( !string.isNullOrEmtpy(result.UserName);
}
так в вашем клиенте:
TakeUsernameIfExist(user: User) : Promise<bool> {
return this.http.get<bool>(this.rootUrl + 'api/TakeUserName/' + user.UserName ).toPromise()
}
Надеюсь, это поможет вам!