从 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.
的响应
我是 .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.