我在构建此代码时遇到问题 - 我有一个api控制器,它通过模型从服务层获取数据,这就是我所拥有的:
api控制器
public class RoleApiController : ApiController
{
private RoleService _roleService = new RoleService();
public RoleUser GetRoleUser(int sectionID)
{
if (sectionID != null)
{
return _roleService.GetUsers(sectionID);
}
throw new HttpResponseException(HttpStatusCode.NotFound);
}
}
模型
public partial class RoleView
{
public RoleView()
{
this.Users = new HashSet<RoleUser>();
}
public ICollection<RoleUser> Users { get; set; }
}
public class RoleUser
{
public string Name { get; set; }
public string Email { get; set; }
}
错误消息:
无法隐式转换类型System.Collections.Generic.IEnumberable&lt; ... RoleUser&gt;到RoleUser。存在显式转换(缺少演员?)
这一行:return _roleService.GetUsers(sectionID);
的JavaScript
<div>
Name: <span id="name"></span>
</div>
<div>
Email: <span id="email"></span>
</div>
<script type ="text/javascript" src="~/Scripts/jquery-1.9.1.min.js"></script>
<script type ="text/javascript">
getRoleUser(9, function (roleUser) {
$("#name").html(roleUser.Name);
$("#email").html(roleUser.Email);
});
function getRoleUser(id, callback) {
$.ajax({
url: "/api/RoleUser",
data: { id: id },
type: "GET",
contentType: "application/json;charset=utf-8",
statusCod: {
200: function (roleUser) { callback(roleUser); },
404: function () { alter("Not Found!"); }
}
success: function(result){
result.each(function())
}
});
}
</script>
答案 0 :(得分:2)
当你应该只返回一个用户时,你回复了一组用户吗?我无法确定你是否真的想要收集你所展示的代码,但这是你的问题。
这将让你的代码编译,但可能不是你想要的解决方案:
return _roleService.GetUsers(sectionID).FirstOrDefault();
答案 1 :(得分:1)
您的方法声明表示它返回RoleUser(单数),而您的方法会提示它返回一个集合。因此,您需要修复方法以返回列表或仅从GetUsers方法返回单个结果。