从 db 调用返回 .net Web Api 的结果

Returning result for .net Web Api from db call

我是 .net Web API 的新手,我正在尝试了解如何 return 从调用我的数据库中获取结果。我知道在我的常规 MVC 页面中一切正常。但不确定如何 return Web API 控制器的结果。我认为它与结果 returning Json 一样简单。这是我的代码:

    // GET api/<controller>
    public IEnumerable<string> Get()

    {

        using (var _db = new JobsDatabaseEntities())
        {
            var user = Env.CurrentUser;
            var posts =
                _db.JobPostings.Where(
                    j =>
                        j.City.Equals(user.City, StringComparison.OrdinalIgnoreCase) &&
                        j.Industry.ID == user.Industry.ID);
            var result = new List<BusJobPost>();

            foreach (var post in posts)
            {
                var p = new BusJobPost(post);
                result.Add(p);
            }

            return Json(result);
        }

    }

请访问此资源:Action Results in Web API 2
您的情况在第四节中有描述其他类型(也适用于第一个版本的 Web API)。

在 Web API 中,您不会 return JSON 明确显示结果。它实际上是由称为 Content Negotiation 的过程完成的。您可以详细阅读here [Content Negotiation in ASP.NET Web API]

简要强调其中的一部分:

  • 您可以为您的请求设置 Accept header 为:Accept: application/json(例如,如果您使用 jquery ajax 函数:dataType: 'json'
  • 或者即使您根本不使用 Accept header,如果您发送带有 JSON 数据的请求,您也应该以 JSON 格式返回响应

所以你应该只是 return result 从你的控制器操作变量并满足一些条件以获得序列化到 JSON.

的响应