MVC 컨트롤러를 다른 클래스의 작은 조각으로 리팩토링하고 있는데 "return StatusCode (500,"Some 메시지 ")"항목.MVC 컨트롤러 외부에서 StatusCode 객체를 반환하는 방법
마치 내가 말할 수있는 한 컨트롤러 밖에서이 작업을 수행 할 수없는 것처럼 보입니다.
이 방법이 가능합니까? 아니면 응답을 반환하고 호출 코드 (MVC 컨트롤러)에서 해당 유형으로 다시 변환 할 수있는 다른 방법을 찾아야합니까?
MVC 작업의 원래 유형이 IActionResult이므로, 적절한 응답 (때때로보기 (모델)), 때로는 Json()을 반환하는 작업 내에서, 및 다른 시간 StatusCode (< 500>), 즉 내 응답이 일관성이 없습니다.
이 코드를 픽업하여 다른 클래스로 옮겨서 자연스럽게 사용할 수있는 방법이 있습니까? 그렇지 않으면 내가 컨트롤러에서 반환하고 리턴 한 것을 나타 내기 위해 내 자신의 객체를 수작업으로 만들어야합니다. 그래서, 무엇이 추천 되는가?
은 즉, 이상적으로는 다음과 같은 조치 결과를 반환 할 수 있도록하려면 컨트롤러의 외부 클래스에 "(내보기 이름", myModel)보기를 반환 ". 나는이를 어떻게 을?
"StatusCode", "Json"및 "View"값이있는 상태 코드, 메시지, 객체 (모델 역할을 수행함), 뷰 이름 및 ActionResultType이라는 새 열거 형을 포함하는 단일 객체입니다. 컨트롤러가 반응을 수신 할 때 적절한 자연스러운 상태로 다시 매핑 할 수 있습니다.
아마 내가 약간 멀리 갈 것이고 대신 논리의 주요 부분을 꺼내야합니다. 컨트롤러보다 더 유연한 응답을 만들기보다는
가능한 경우 각 조치 결과를 약 10 줄로 작성하고 싶지만 적절한 답을 다른 곳에서 돌려 줄 수있는 좋은 방법을 찾지 못하면 문제가 될 수 있습니다.
컨트롤러 외부의 논리는 HTTP 오류 코드를 모르거나 신경 쓰지 않아야합니다. – DavidG
이들 모두에는 ActionResult의 기본 유형이 있으므로 문제가 무엇인지 잘 모르겠습니다. –
"return InternalServerError (새 예외 ("일부 사용자 정의 메시지 "));" –