JSON을 반환하는 ASP.NET MVC 6 컨트롤러 가져 오기

asp.net-core-mvc asp.net-web-api c# entity-framework-core json

문제

MVC 6 프로젝트에서 Web API를 테스트하기 위해 Fiddler를 사용하고 있습니다. EntityFramework 7을 사용하여 목록을 반환하는 다음 컨트롤러 작업을 수행 할 경우. 그러면 html이 잘 렌더링됩니다.

[HttpGet("/")]
public IActionResult Index()
{
    var model = orderRepository.GetAll();

    return View(model);
}

하지만 대신 Json 응답을 반환하려고하면 502 오류가 발생합니다.

[HttpGet("/")]
public IActionResult Index()
{
    var model = orderRepository.GetAll();

    return View(model);
}

개체가 json으로 올바르게 직렬화되지 않은 이유에 대한 아이디어?

수락 된 답변

먼저 JsonResult 대신 반환 형식으로 IEnumerable<Order> 또는 IEnumerable<object> 를 사용하고 orderRepository.GetAll()JsonResult 됩니다. 내가 읽어보실 것을 추천 문서 FR에게 추가 정보를.

잘못된 게이트웨이에 대한 다른 오류 정보 최신 버전 8.0.2의 Newtonsoft.Jsonpackage.json 종속성에 추가하여 사용하십시오.

services.AddMvc()
    .AddJsonOptions(options => {
        options.SerializerSettings.ReferenceLoopHandling =
            Newtonsoft.Json.ReferenceLoopHandling.Ignore;
    });

그런데 "HTTP Error 502.3 - Bad Gateway"오류를 재현 할 수 있습니다.이 코드는 작업 코드의 return 문에 중단 점을 설정하고 충분히 오래 기다리는 경우에 설명합니다. 따라서 많은 일반적인 오류에서 곧 "HTTP 오류 502.3 - 잘못된 게이트웨이"오류가 표시됩니다.

보다 유용한 직렬화 옵션을 고려해 볼 수 있습니다. 예를 들어

services.AddMvc()
    .AddJsonOptions(options => {
        options.SerializerSettings.ReferenceLoopHandling =
            Newtonsoft.Json.ReferenceLoopHandling.Ignore;
    });



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.