0
我是ASP.NET新手。剛剛在ASP.NET MVC,Web API和SPA中完成了3本書。但這似乎不足以解決一個非常簡單的問題。我在我的web api控制器中有以下代碼來返回JSON/XML數據。所需的數據是返回在Identity Framework中註冊的用戶列表。在MVC上做了這些,但無法弄清楚web api。ASP.NET 4.5 WebAPI返回用戶列表
[AllowAnonymous]
[Route("UserInfos")]
public IEnumerable<AppUser> GetUserInfos()
{
List<AppUser> logins = new List<AppUser>();
foreach (AppUser user in UserManager.Users)
{
logins.Add(user);
}
return logins;
}
但是我在調用這個Web API時出現錯誤。錯誤如下。
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
The 'ObjectContent`1' type failed to serialize the response body for content type 'application/xml; charset=utf-8'.
</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
<StackTrace/>........
....
....
我在做一個用戶管理/在SPA管理部門,SOI需要Web API返回用戶,角色等的名單就像MVC如何在模型/控制建設行政返回這些數據頁。
請大家幫忙。任何指向教程的鏈接都會受到讚賞,因爲我已經用盡了所有需要解決的問題。謝謝。
[編輯] 下面的這段代碼解決了它。我爲此創建了一個模型。但爲什麼我不能直接訪問和使用Identity模型?我可以在MVC中做到這一點。
[AllowAnonymous]
[Route("UserInfos")]
public IEnumerable<FlatUserModel> GetUserInfos()
{
List<FlatUserModel> logins = new List<FlatUserModel>();
foreach (AppUser user in UserManager.Users)
{
logins.Add(new FlatUserModel
{
Id=user.Id,
Name=user.UserName,
Email=user.Email
});
}
return logins;
}
'UserManager.Users'是類型'的IQueryable'的。你確定它包含'AppUser'對象嗎? –
2014-11-25 01:20:43
將您的用戶映射到展平視圖模型。它看起來像你有孩子的關係,當序列化時可能導致循環引用。 – trevorc 2014-11-25 02:26:55
我如何映射到展平視圖模型?這是否意味着我創建了一個與AppUser/IdentityUser具有相同屬性的視圖模型,並將UserManager.Users中的每個項目分配給這個新的漸變對象? – 2014-11-25 03:47:09