2011-11-18 3 views
0

내가보기에 데이터를 전달하는 컨트롤러가 : ID가 내가 세부에 빈 또는 오류보기 및 전달되지 않은 데이터를 반환하고자 그 강력하게 형식화되어 볼 것 유효하지ASPNET.MVC에서 빈보기를 반환하는 방법?

public ViewResult Details(int id) 

경우 및 도착할 수없는 데이터를 대기합니다.

어떻게 일반 오류보기를 처리 할 수 ​​있습니까?

답변

1

실제 컨트롤러가 상속 한 기본 컨트롤러에는 오류 동작이 있습니다. 입력이 유효성 검증에 실패하면,보기에 표시 될 오류 메시지 텍스트를 전달하는 오류 조!로 재 지정하십시오. 이렇게하면 모든 컨트롤러 작업에서 표준 오류보기를 사용할 수 있습니다.

1

당신은 당신이 좋아하는 어떤보기로 리디렉션 수 :

return View("Error", "This is a error message"); 

위의 코드는 Error.cshtml보기로 리디렉션 메시지와 함께 문자열을 전달합니다. 필요에 따라

1

그냥 오류보기를 반환 :

if(// id is invalid) 
{ 
return View("MyErrorView"); 
} 
1

를 ID가 유효하지 않은 경우, 빈 내용을 반환하지 않는, 즉 실제로 HTTP 상태 404에 대한 일반적인 이야기 - MVC, 당신은 처리 할 수 ​​- 찾을 수 없음 그것과 같은, 쉽게 : 대안으로

if (IdIsInvalid(id)) 
return HttpNotFound(); 

, 당신은

throw new HttpException(404, "NotFound"); 

를 호출하고 처리 할 수 ​​있습니다 404 오류 세계적으로, 당신의 web.config에 설정을 가진 예를 들면 :

<configuration> 
<system.web> 
    <customErrors mode="On"> 
     <error statusCode="404" redirect="~/NotFound"/> 
    </customErrors> 
</system.web> 

+0

의 Web.config를 통해 전 세계적으로 오류를 처리하는 문제는 클라이언트가 아니라 302 (리디렉션)을 받고 끝나는 것입니다 원하는 404 (찾지 못했습니다.) 그러나 나는 적절한 HTTP 코드를 사용하는 것이 좋은 접근 방식입니다 동의합니다. –