Каков элегантный способ использовать существующие атрибуты [HandleError] и [Authorize] при работе с вызовами XHR из javascript?
Так, скажем, например, метод GetJson, который возвращает JsonResult.
При возникновении ошибки метод [HandleError] отправит обратно ViewResult, который будет получен в функции обратного вызова в javascript.
Затем я должен был бы разместить пользовательский код повсюду в javascript для обработки и перенаправления любых сбоев и т. Д.
Что я хотел бы сделать, так это чтобы атрибут [HandleError] возвращал JsonResult, если исходное действие планировало это сделать. Это может быть желаемое за действительное с моей стороны.
Аналогичным образом, если приходит неавторизованный запрос Json, вместо возврата нового HttpUnauthorizedResult, я бы хотел вернуть JsonResult, который позволяет моему клиентскому коду обрабатывать вещи обычным образом.
Я лаю не на том дереве? Может быть, есть еще более приятный способ, которым MVC может справиться с этим, о чем я не знаю?
Как другие люди справляются с этим сценарием?
Спасибо.
PS: я понимаю, что могу создать свои собственные атрибуты [HandleJsonError] и [AuthorizeJson], которые возвращают JsonResults вместо ViewResults, но тогда мне придется обойти их и поместить в любой метод, который возвращает Json, и беспокоиться о фильтре порядок и т. д. Было бы неплохо, если бы я мог использовать отражение или что-то, чтобы один и тот же атрибут действовал по-разному в зависимости от сигнатуры исходного метода.