Можно ли возвращать ошибку 500 при сбое проверки на ASP NET MVC с использованием Ajax? - PullRequest
0 голосов
/ 16 августа 2010

У меня есть главное представление для добавления, удаления и обновления клиентов в приложении ASP NET 3.5 MVC 1.0.Пользователь должен иметь возможность, например, выбрать клиента из списка для редактирования, а в нижней части страницы отображается подробная форма, позволяющая ему редактировать данные клиента.

КогдаПользователь принимает изменения, данные передаются через Ajax POST на сервер.Проверка выполняется только на стороне сервера.

  • Если проверка не удалась, я хочу, чтобы форма с данными клиента была перезагружена с отображением всех ошибок проверки.Если
  • Если проверка прошла успешно, я хочу, чтобы весь список клиентов был перезагружен со всеми данными нового клиента (или я мог бы перезагрузить только редактируемую запись клиента).

Сейчасточка.Я думал о возвращении частичного представления с формой с ошибками проверки в первом случае или частичного представления со списком клиентов во втором.

Чтобы определить, какая часть страницы должна быть обновлена, верните код состояния 500 или 200 и используйте функции Ajax fail и success для выполненияОбновления.

Мой вопрос: семантически ли правильно использовать ошибку 500 (внутренняя ошибка сервера), чтобы указать, что проверка не удалась?Или я должен вернуть объект JSON, содержащий логическое значение isValid , а также тело HTML, и избегать использования кодов состояния для этого?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 16 августа 2010

Я бы вообще сказал, что возврат ошибок уровня HTTP зарезервирован для случаев, когда что-то действительно сломано, а не для способа обработки ошибки прикладного уровня. Так же, как не обязательно создавать исключение, если логическая проверка данных не удалась. Поэтому я бы проголосовал за возвращение объекта результатов json для исправления ошибки (или нет).

0 голосов
/ 16 августа 2010

Это действительно зависит от вас.Без знания всех ваших требований, базовой инфраструктуры и временных ограничений было бы невозможно принять решение.

...