在asp.net核心网站中,我创建了一个控制器,并且可以使用:
return Json(new {status=true});
但是在asp.net核心Web API中,我做不到。
在控制器中:
[HttpGet("{id}")]
public JsonResult Get(int id)
{
}
我无法退回Json()
如何使用它?
答案 0 :(得分:1)
Asp.Net Core Web API确实支持多种响应类型,其中Json就是其中之一。您可以如下所示进行操作。确保您具有所有必需的依赖项。您可以从我在此答案中随附的文档链接中了解相关性。
[HttpGet]
public IActionResult Get()
{
return Json(model);
}
您还可以使用控制器上的[Produces]
过滤器来指定严格的响应格式。
您还可以通过在.AddFormatterMappings()
内部的ConfigureServices
方法中调用Startup.cs
来在Asp.Net Web API项目中配置自己的自定义格式化程序。这样可以更好地控制内容协商部分,并实现严格的限制。
请仔细阅读this文档以进一步了解。
但是,建议您在使用Web API时使用内置的帮助器方法,这样您的响应既包含响应内容,又包含状态代码,因此更具表达性。下面是一个执行此操作的示例
[HttpGet]
public ActionResult Get()
{
return Ok(_authors.List());
}
有关可用的辅助方法的完整列表,可以查看Controller.cs和ControllerBase.cs类。
答案 1 :(得分:0)
Asp.net核心Web api继承自controllerBase
,其中不包含Json(Object)方法。您应该在操作中自己初始化一个新的JsonResult。
[HttpGet("{id}")]
public JsonResult Get(int id)
{
return new JsonResult(new { status = true });
}