Как я могу вернуть 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
пакет установлен.