Обработка ошибок на основе атрибутов для запросов AJAX?(Стоит ли это?) - PullRequest
0 голосов
/ 05 мая 2011

Когда я выполняю Ajax.BeginForm, публикуя сообщения о своих действиях, возвращая частичное представление, я отправляю информацию об ошибке в элементе ViewData.

В настоящее время для обработки всех ошибок я должен обернуть все методы в try catchзаявление.

[HttpPost, ValidateAntiForgeryToken]
public virtual ActionResult Save(int id, FormCollection form)
{
    MyModel model;
    try
    {
        ...do stuff...

    }
    catch(Exception ex)
    {
        ...log...
        ViewData["ResultInfo"] = new ResultInfo(false, Resource.SAVE_NOT_SAVED, someErrorMessage);
    }

    return PartialView("Folder/SomeView", model);
}

Я хотел бы сделать это с помощью пользовательского атрибута HandleError, но я понимаю, что должно быть много ошибок, ожидающих кусаться.Кто-нибудь пробовал и хочет поделиться своим опытом?

РЕДАКТИРОВАТЬ:
Я закончил обработку ошибок в базовом классе контроллера.

Этот ErrorHandlingController имеет2 метода;RegisterErrorHandler и RegisterModel.Если обработчик ошибок найден зарегистрированным при обнаружении ошибки в базовом классе OnException, я просто добавляю ResultInfo и помечаю ошибку как обработанную и использую вид и заголовок ошибки, которые я установил в RegisterErrorHandler.

Таким образомочень легко передать модель в обработчик ошибок, и естественно использовать ресурсы напрямую, поскольку обработчик ошибок регистрируется как первая строка внутри метода, а не как атрибут вне него.

1 Ответ

1 голос
/ 05 мая 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...