2016-05-16 57 views

回答

1

你混合MVC和Web API概念和对象。

JsonResult是一个MVC派生的ActionResult对象,而IHttpActionResult与Web API相关联。

此外,如果您不想返回所有数据,则不要。构建一个新的对象结果模型并仅返回需要的内容。

[ResponseType(typeof(UserModel))] 
public IHttpActionResult Get(string id) { 

    var user = db.AspNetUsers.FirstOrDefault(s => s.UserName == id); 
    if (user == null) 
     return NotFound(); 

    var data = new UserModel { 
     UserName = user.UserName, 
     Email = user.Email, 
     FirstName = user.FirstName, 
     LastName = user.LastName, 
     Roles = user.AspNetRoles.Select(s => s.Name).ToArray() 
     //...other properties you want to return 
    };  
    return Ok(data); 
} 

public class UserModel { 
    public string UserName { get; set; } 
    public string Email { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string[] Roles { get; set; } 
} 
0

我解决我的问题在丝毫恩科西回答变化不大.....

[ResponseType(typeof(UserModel))] 
    public IHttpActionResult Get(string id) 
    { 

     var user = db.AspNetUsers.Include(a=>a.AspNetRoles).Where(s => s.UserName == id).FirstOrDefault(); 
     if (user == null) 
      return NotFound(); 

     var data = new UserModel 
     { 
      UserName = user.UserName, 
      Email = user.Email, 
      FirstName = user.FirstName, 
      LastName = user.LastName, 
      Roles = user.AspNetRoles.Select(s => s.Name).ToArray() 
      //...other properties you want to return 
     }; 
     return Ok(data); 
    } 

    public class UserModel 
    { 
     public string UserName { get; set; } 
     public string Email { get; set; } 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
     public string[] Roles { get; set; } 
    } 

非常感谢

+2

这看起来像恩科西答案的复制粘贴。如果删除此答案并将Nkosi答案标记为答案(使用答案旁边的复选框)会更好。这会向其他人显示这是正确的,并且还会奖励Nkosi积分来帮助您。 – Igor

相关问题