Как я могу вернуть Json в .NET 8?

В моемProductControllerу меня есть этот код для возврата Json:

      [HttpGet]
public IActionResult GetAllProduct()
{
    List<Product> objProductList = _unitOfWork.ProductRepository
                                              .GetAll(includeProperties: "Category")
                                              .ToList();

    // return Json(new { data = objProductList });
    return Json(objProductList);
}        

И когда я запускаю Интернет и перехожу к действию, я получаю эту ошибку - пожалуйста, помогите:

Код загружен сюда для изучения https://github.com/nguyentuananh921/Bulky_MVC/commits/master .

1 ответ

Такие ошибки обычно являются признаком несоответствия пакета. Запустите в командной строке:dotnet --list-sdksи убедитесь, что выходные данные содержат последнюю предварительную версию .NET 8 (в настоящее время это8.0.100-preview.6.23330.14, если нет - установите). Также запуститеdotnet --versionчерез командную строку в папке проекта и убедитесь, что отображается правильная версия.

Также удалите следующий пакет изModelsпроект:

      <PackageReference Include="Microsoft.AspNetCore.Mvc.ViewFeatures" Version="2.2.0" />

И замените его ссылкой на платформу (см. документ «Использование общей платформы ASP.NET Core »):

      <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

ПС

Закомментировал.AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());потому что это делает проект некомпилируемым. Вероятно, Вы имели в виду:

      .AddNewtonsoftJson(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver())

Что требуетMicrosoft.AspNetCore.Mvc.NewtonsoftJsonпакет установлен.

Другие вопросы по тегам