我是ASP.NET的新手。刚刚完成了ASP.NET MVC,Web API和SPA的3本书。但似乎还不足以解决一个非常简单的问题。我在我的web api控制器中有以下代码来返回JSON / XML数据。所需数据是返回使用Identity Framework注册的用户列表。在MVC上做了这个,但没能弄清楚web api。
[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中做一个用户经理/管理员,所以我需要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;
}
答案 0 :(得分:0)
[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;
}