1
//GET api/Account/AllUsers 
    [Route("AllUsers")] 
    public List<IdentityUser> GetUsers() 
    { 
     var users = UserManager.Users.ToList(); 
     return users; 
     //return query; 
    } 

ERROR從asp.net身份回到2.0用戶的IQueryable

這是返回的錯誤,沒有別的,當該路徑被稱爲發生。 ApplicationUser被調用的唯一時間是在登錄過程中,然後我導航到該視圖並在頁面上調用此路由加載哪些錯誤。不知道它是EntityFramework,後端代碼還是無知。

public class ApplicationUser : IdentityUser 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string BirthDate { get; set; } 
    public bool IsDriver { get; set; } 
    public DateTime CreatedDate { get; set; } 
} 

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("DmmContext", false)    
    { 

    } 

} 

以上是ApplicationUser類。

 //GET api/Account/AllUsers 
    [Route("AllUsers")] 
    public List<ApplicationUser> GetUsers() 
    { 
     var users = UserManager.Users.ToList(); 
     return users; 
     //return query; 
    } 
+0

難道這應該是一個OData的API? –

+0

我是這麼想的。我仍然在爲無知而感到遺憾。首先嚐試使用WebApi和更新的技術。 –

回答

1

由於您使用ASP.NET身份2,你可以試試這個呢?

//GET api/Account/AllUsers 
[Route("AllUsers")] 
public async Task<List<ApplicationUser>> GetUsers() 
{ 
    var users = await UserManager.Users.ToListAsync(); 
    return users; 
} 
+0

我沒有ToListAsync()作爲選項,我嘗試過ToList()哪個錯誤:'await'操作符只能在異步方法中使用。然後,我嘗試添加異步的方法,其中錯誤:1.異步方法的返回類型必須爲void,Task或Task <>,2.不能等待'system.collections.generic.list 。 –

+0

對不起忘了異步和任務..後編輯。也許你可以嘗試UserManager.Users.ToList()而無需等待,異步和任務? –

+0

我試過以上,我從IdentityUser到ApplicationUser獲取類型轉換錯誤。當我使用上面的編輯時,我返回了IdentityUser值,但不是ApplicationUser中的擴展屬性(顯然)。但是,我需要其他屬性。任何想法? ApplicationUser類也在原始文章中,這是我期待與IdentityUser類信息相一致的信息。 –

0

您可以通過以下方式從網頁API返回的IQueryable用戶列表:

[Route("AllUsers")] 
    public IQueryable<User> GetUsers() 
    { 
     return db.users; 
    } 
+0

請爲您的解決方案添加一些解釋,以及它如何解決問題以幫助他人在未來學習 –