programing

void를 반환하는 ASP.Net MVC 컨트롤러 작업

skycolor 2023. 7. 1. 08:14
반응형

void를 반환하는 ASP.Net MVC 컨트롤러 작업

다음과 같은 컨트롤러 작업이 있는 경우...

public void DoSomething()
{
}

프레임워크가 실제로 이것으로 변환할까요?

public EmptyResult DoSomething()
{
  return new EmptyResult();
}

네.

void를 반환하는 컨트롤러는 Empty Result를 생성합니다.

가져옴

ASP.NET MVC 컨트롤러의 수명 및 시간

그런 것 같습니다. 컨트롤러 작업의 소스 코드를 확인하십시오.Invoker.cs .확인하지는 않았지만 void return이 actionReturnValue를 null로 설정하므로 EmptyResult가 생성됩니다.이것은 가장 최근의 소스 코드이며, ASP.net MVC 1.0의 소스를 확인하지 않았습니다.

protected virtual ActionResult CreateActionResult(ControllerContext controllerContext, ActionDescriptor actionDescriptor, object actionReturnValue) {
    if (actionReturnValue == null) {
        return new EmptyResult();
    }

    ActionResult actionResult = (actionReturnValue as ActionResult) ??
        new ContentResult { Content = Convert.ToString(actionReturnValue, CultureInfo.InvariantCulture) };
    return actionResult;
}

그것은 그것을 "변환"하지는 않겠지만, 두 가지는 사용자에 관한 한 동일한 효과를 낼 것입니다.요청은 전송되지만 응답은 클라이언트에 반환되지 않습니다.

개인적으로, 저는 당신이 응답 스트림에 직접 계속 또는 성공을 적더라도, 당신이 고객에게 몇 가지 응답을 다시 보내야 한다고 생각합니다.JSON도true또는 빈 XML 문서가 없는 것보다 낫습니다.

언급URL : https://stackoverflow.com/questions/2048643/asp-net-mvc-controller-actions-that-return-void

반응형