Каков правильный подход для отправки ошибки Ajax.BeginForm? - PullRequest
0 голосов
/ 10 мая 2019

Я начинаю использовать Ajax.BeginForm и понял, что могу вызвать Action контроллера и получить его ответ.Итак, если пользователь пытается войти в систему, я создал действие CheckLogin, которое ожидает имя пользователя и пароль пользователя.Если логин и пароль верны, я возвращаю Json с перенаправлением Uri на мой звонок, и все прошло нормально, но я не знаю, как должен работать сбой.Должен ли я бросить исключение?Должен ли я вернуть неправильный запрос?

return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest, "Invalid credentials");

Какой подход правильный?

Заранее спасибо, ребята!

1 Ответ

2 голосов
/ 13 мая 2019

Это зависит от типа ошибки ... если учетные данные недействительны, вам следует вернуть подходящий HTTP-статус, например, «Bad Request» (400) или «Forbidden» (403), в зависимости от того, как вы этого хотите. работать.

Если код действительно дает сбой, это вызовет исключение ... и это приведет к состоянию HTTP Internal Server Error (500). Это указывает на совершенно другой сценарий для клиента. Вы должны использовать это только в случае непредвиденной ошибки.

Ожидаемая проблема, такая как неверный пароль, должна привести к возвращению другого статуса, который дает клиенту представление о характере проблемы. Плохой запрос, вероятно, является правильным статусом для этого, но разные люди имеют разные мнения по этому поводу. Там нет жесткого и быстрого правила, только руководство.

...