0

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

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

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

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

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


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

Edit 2: код я сделал перечислена here для anyones ссылки :)

+1

излучающего JSON действительно то, что вы хотите сделать? Было бы лучше, если бы получатель не прочитал статус 404, а затем обработал, чем внутренне? Я имею в виду, я изо всех сил пытаюсь понять, какие значимые данные попадут в пакет JSON для 404, который клиент еще не знает. – annakata

+0

Json или Xml. В любом случае, мне нужно отправить обратно 404, и потребитель должен справиться с этим. Это то, что делает твиттер, например. –

ответ

0

При обработке вашего исключения, вы настройка ExceptionHandled истины?

Вот быстрый пример ...

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(); 
    } 
} 
+0

Да, я так считаю. Я также добавил ссылку на код, который я сделал. Можете ли вы проверить это, пожалуйста? –

+0

Я тоже ответил на это сообщение. Похоже, в вашем коде есть небольшая опечатка, но я уверен, что это всего лишь опечатка в вопросительном коде, а не то, что в вашем классе. –

+0

Да, это был просто вопрос опечатки, когда я уменьшил реальную логику для верности. *румянец*. –