Как можно отправить обратно мое собственное сообщение об ошибке 404 в ASP.NET, но как JSON? - PullRequest
0 голосов
/ 15 сентября 2009

Я пытаюсь отправить простое сообщение об ошибке как Json, с HTTP code как 404.

Итак, я начал писать свой собственный IExceptionFilter, который проверяет, чтобы увидеть исключение. Для простоты, если исключение имеет тип ResourceNotFoundException, тогда я устанавливаю код 404. В противном случае все остальное, если 500.

Теперь проблема в том, что ... возвращается сообщение об ошибке IIS7 404 по умолчанию :( мой код называется .. но, похоже, его обойти (позже в конвейере) ...

Есть какой-то трюк, который мне нужно сделать?

мне нужно, чтобы пользовательская обработка ошибок (в веб-конфигурации) была включена или что-то в этом роде?


Edit: Я пытаюсь сделать то, что делает твиттер. Их Http Response Code документация показывает / объясняет некоторые примеры того, как они обрабатывают 404, и т. Д., И я хочу сделать это в моем приложении MVC.

Редактировать 2: Код, который я сделал, указан здесь , для справки:)

1 Ответ

0 голосов
/ 16 сентября 2009

Когда вы обрабатываете свое исключение, вы устанавливаете ExceptionHandled в true?

Вот краткий пример ...

HandleException(ActionExecutedContext filterContext)
{
  Exception exception = filterContext.Exception;

  //Check if our exception has been handled.
  if (filterContext.ExceptionHandled == false)
  {
    //Do your exception stuff
    filterContext.Result = YourExceptionMessageAsAnActionResult();
    //Set it as null.
    filterContext.ExceptionHandled = true;
    filterContext.HttpContext.Response.Clear();
  }
}
...