【问题标题】:Returning result for .net Web Api from db call从 db 调用返回 .net Web Api 的结果
【发布时间】:2015-09-27 17:09:10
【问题描述】:

我是 .net Web API 的新手,我想弄清楚如何从对我的数据库的调用中返回 Get 结果。我知道在我的常规 MVC 页面中一切正常。但不确定如何从 Web API 控制器返回结果。我认为这就像返回 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);
        }

    }

【问题讨论】:

    标签: asp.net-mvc entity-framework asp.net-web-api2


    【解决方案1】:

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

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

    仅简要强调其中的一些内容:

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

    因此,您应该只从控制器操作中返回 result 变量并满足一些条件以将响应序列化为 JSON。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 2021-11-26
      • 1970-01-01
      相关资源
      最近更新 更多