경로를 찾을 수없는 경우 정상적인 HTTP 404 오류로 처리하고 싶습니다.
클래스 또는 작업에만 [HandleError]
속성을 추가하는 경우 MVC는 views 폴더에서 Error
보기를 검색합니다.
당신은 또한 ErrorController
심지어 정적 페이지를 추가하고 Web.config
이를 추가 할 수
<customErrors mode="On" >
<error statusCode="404" redirect="/Error/PageNotFound/" />
</customErrors>
을 또는 당신은 당신의 Global.asax.cs
및 경로 프로그래밍 ErrorController
에있는 HTTP 404을 처리 할 수 있습니다. 그건 내가 일반적으로 그것을 할 방법 :
이 방법
protected void Application_Error(object sender, EventArgs e)
{
var ex = Server.GetLastError().GetBaseException();
var routeData = new RouteData();
if (ex.GetType() == typeof(HttpException))
{
var httpException = (HttpException)ex;
switch (httpException.GetHttpCode())
{
case 404:
routeData.Values.Add("action", "PageNotFound");
break;
default:
routeData.Values.Add("action", "GeneralError");
break;
}
}
else
{
routeData.Values.Add("action", "GeneralError");
}
routeData.Values.Add("controller", "Error");
routeData.Values.Add("error", ex);
IController errorController = new ErrorController();
errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
}
문제는 잘못된 값으로 자식 액션 @의 Html.Action (routeValues)를 렌더링하려고하면, 그것은'PartialView''로 PageNotFound' 조치를 렌더링 ...이다 예외를 실제로보고하지 않아도됩니다. – Nenad