Есть ли у кого-нибудь элегантный способ борьбы с ошибками в ASP.Net MVC? Я постоянно сталкиваюсь с проблемами при работе с запросами на действия контроллера, где Action может использоваться как для обычных запросов, так и для запросов AJAX. Проблема, которую я имею, - найти элегантный способ решения этих проблем.
Например, как я могу обрабатывать ошибки проверки? В идеале я хотел бы отправить форму на сервер через AJAX, а затем вернуть любые ошибки, которые действие запустило, и отобразить их на странице, но для того, чтобы они работали с помощью обычной обратной передачи, когда клиент отключил JavaScript. Я знаю, что я могу использовать плагин проверки jQuery по мере их ввода, но это не то же самое, и он не идеален, учитывая, что ограничения на данные, подлежащие проверке, будут указаны в двух местах (мои сопоставления проверки nHibernate и в файле JavaScript).
Как насчет того, когда пользователь запрашивает несуществующую запись? Должен ли я перенаправить на страницу 404? Что делать, если запрос был сделан через Ajax (скажем, для загрузки в диалоговое окно).
Итак:
Как вы обрабатываете ошибки, вызванные действиями контроллера, когда они вызывались с помощью Ajax? Особенно ошибки модели штата (например, проверка). Могу ли я отправить его через JSON?
У вас есть советы о том, как делать действия контроллера, которые хорошо работают при вызове обычно и через Ajax? Это раздражающая проблема при написании методов действий. Из-за типа возврата я могу получить другой результат в зависимости от вызывающего. Есть ли способ сделать это без двух методов действий?
Какова ваша общая стратегия для обработки ошибок в действиях на MVC? Вы перенаправляете на страницы с ошибками? Переадресовываете ли вы на другую страницу?
Изменить: Я думаю, что часть проблемы заключается в том, что я хочу, чтобы произошли разные вещи, поэтому, если есть ошибка, я хотел бы остановить какой-либо прогресс, пока не исправит и, следовательно, отправит ошибку. В противном случае я могу обновить различные области страницы. Но если бы у меня было одно возвращение, как бы я знал, что это успех или неудача, не обертывая его объектом, у которого есть свойство, обвиняющее его (тем самым затрудняя использование частичных представлений).
Спасибо