2013-02-21 4 views
0

У меня есть URL-адрес, который выглядит так:/employees? EmployeeId = 3992, который отображает сотрудника с идентификатором 3992. Это работает нормально, а код состояния HTTP - 200.IHttpModule RewritePath с StatusCode 404

Однако, когда кто-то пишет недопустимый ID в URL, такие как:/сотрудников EmployeeID = 39920, я хотел бы мой HTTP Handler переписать путь к странице ошибки, и отправить HTTP Status Code 404.

? Вот код, я использую:

if (employee == null) 
{ 
    context.RewritePath("/error-page"); 
    context.Response.StatusCode = 404; // if I remove this line, the error-page is displayed, and the StatusCode is 200. 
} 

Когда я установить HTTP Status Code 404, страница отображается этот стандарт ASP.NET 404 ошибка страницы.

enter image description here

+1

Проверьте этот пост, который, кажется, чтобы покрыть то, что вы пытаетесь достичь http://helephant.com/ 2009/02/11/улучшение труднодоступной-САШИ-ручка-404-запросы / – bUKaneer

ответ

0

Также называют

context.Response.TrySkipIisCustomErrors = true; 

например:

if (employee == null) 
{ 
    context.Response.TrySkipIisCustomErrors = true; 
    context.RewritePath("/error-page"); 
    context.Response.StatusCode = 404; 
}