Asp.net core Can';不要在asp.net核心web api中使用Json(),就像在asp.net核心web api中使用Json()一样

Asp.net core Can';不要在asp.net核心web api中使用Json(),就像在asp.net核心web api中使用Json()一样,asp.net-core,asp.net-core-webapi,Asp.net Core,Asp.net Core Webapi,在asp.net core web中,我创建了一个控制器,可以使用: return Json(new {status=true}); 但在asp.net核心web API中,我无法做到这一点 在控制器中: [HttpGet("{id}")] public JsonResult Get(int id) { } 我无法返回Json() 如何使用它?Asp.Net核心Web API确实提供了对各种响应类型的支持,Json就是其中之一。您可以按如下所示的方式进行

在asp.net core web中,我创建了一个控制器,可以使用:

return Json(new {status=true});
但在asp.net核心web API中,我无法做到这一点

在控制器中:

[HttpGet("{id}")]
        public JsonResult Get(int id)
{

}
我无法返回
Json()


如何使用它?

Asp.Net核心Web API确实提供了对各种响应类型的支持,Json就是其中之一。您可以按如下所示的方式进行操作。确保您拥有所有必需的依赖项。您可以从我在这个答案中附加的文档链接中了解依赖关系

[HttpGet]
public IActionResult Get()
{
    return Json(model);
}
您还可以使用控制器上的
[products]
过滤器指定严格响应格式

配置自定义格式化程序 您还可以在Asp.Net Web API项目中配置自己的自定义格式化程序,方法是从
Startup.cs
中的
ConfigureServices
方法调用
.AddFormatterMappings()
。这允许对内容协商部分进行更大的控制,并允许您实现严格的限制

请阅读文档以进一步了解

使用带有状态代码的响应 但是,在使用WebAPI时,我建议您使用内置的helper方法,这样您的响应将更具表达力,因为它包含响应内容和状态代码。下面是一个如何做到这一点的示例

[HttpGet]
public ActionResult Get()
{
    return Ok(_authors.List());
}

有关可用帮助程序方法的完整列表,请查看和类。

Asp.net核心web api继承自,它不包含Json(对象)方法。您应该在操作中自己初始化一个新的JsonResult

[HttpGet("{id}")]
public JsonResult Get(int id)
{
    return new JsonResult(new { status = true });
}

是Ok(_authors.List());返回哪个contenttype“application/json”或“text/plain”?只要您没有另外指定,它将是json。JSON是ASP.NET CoreHi@liang使用的默认格式。很好,我的回答帮助您解决问题了吗?恐怕没有。返回Ok(new{state=true})是答案