我更喜欢使用ViewModels,而不是手动构建复杂的JSON响应。它确保了所有返回数据的方法的一致性,并且更容易使用强类型的属性恕我直言。
public class Response
{
public bool Success { get; set; }
public IEnumerable<User> Users { get; set; }
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
,然后只是:
Response response = new Response();
response.Success = true;
// populate the rest of the data
return Json(response);
这也有让您使用一个基类为每一个反应,如果有类似的成功状态,或错误信息的公共数据的优势。
public class ResponseBase
{
public bool Success { get; set; }
public string Message { get; set; }
}
public class UserResponse : ResponseBase
{
IENumerable<User> Users { get; set }
}
现在,如果你有一个错误:
return Json(new ResponseBase() { Success = false, Message = "your error" });
,或者如果它成功
return Json(new UserResponse() { Success = true, Users = users });
如果你想手动工艺的JSON,然后只是:
return Json(new { success = true, users = new[] { new { id = 1, Name = "Alice"}, new { id = 2, Name = "Bob"} } });
只是我正在寻找的解释,谢谢! –