如何在ASP.NET CORE 8项目中返回JSON结果

问题描述 投票:0回答:1

使用 ASP.NET.MVC 库有一种方法

    [HttpGet]
    public JsonResult GetData()
    {
        JsonResult result;
        InvoiceData dt = new InvoiceData();
        result = Json(dt, JsonRequestBehavior.AllowGet);
        return result;
    }

现在这条路不见了

  Cannot implicitly convert type 'Microsoft.AspNetCore.Mvc.JsonResult' to 'Microsoft.AspNetCore.Mvc.HttpGetAttribute'

我在项目文件中仅添加了标准 NET Core 8 库

 <Project Sdk="Microsoft.NET.Sdk.Web">
   <PropertyGroup>
      <TargetFramework>net8.0</TargetFramework>
      <Nullable>enable</Nullable>
      <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>
</Project>

并且不添加古老的支持库,但现在怎么可能返回Json结果?

json asp.net-mvc asp.net-core
1个回答
0
投票

在 ASP.NET Core 中,

JsonResult
的工作方式与旧版本的
ASP.NET MVC
不同。 ASP.NET Core 中不再需要
JsonRequestBehavior.AllowGet
选项。

您需要修改您的代码,如下所示:

public class HomeController : Controller
{

    [HttpGet]
    public JsonResult GetData()
    {
        JsonResult result;
        InvoiceData dt = new InvoiceData();
        result = Json(dt);
        return result;
    }
}

然后确保

Controller
HttpGetAttribute
JsonResult
都在
Microsoft.AspNetCore.Mvc
中。
Json
方法属于
Controller
类。

enter image description here

enter image description here enter image description here

enter image description here

您可以指定命名空间,如下所示:

public class HomeController : Microsoft.AspNetCore.Mvc.Controller
{

    [Microsoft.AspNetCore.Mvc.HttpGet]
    public Microsoft.AspNetCore.Mvc.JsonResult GetData()
    {
        Microsoft.AspNetCore.Mvc.JsonResult result;
        InvoiceData dt = new InvoiceData();
        result = Json(dt);
        return result;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.