Как вернуть ошибку HTTP 400 - Bad Request из запроса веб-формы? - PullRequest
2 голосов
/ 23 августа 2011

Субъект в значительной степени говорит обо всем.У меня есть веб-форма EstateReport, которая должна вызываться с параметром запроса EstateId.Я хочу вернуть соответствующую ошибку HTTP, если этот параметр у нас отсутствует.Как мне вернуть HTTP-ошибку 400 в качестве моего ответа?

По касательной, должен ли я возвращать ошибку, если требуемый параметр отсутствует, что я считаю более правильным, или перенаправить на страницу поиска дляотчет, который является более удобным для пользователя?

Ответы [ 3 ]

24 голосов
/ 23 августа 2011

вы можете:

throw New HttpException(400, "Bad Request");

или

Response.StatusCode = 400;
Response.End();

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

1 голос
/ 23 августа 2011

Изменить свойство HttpResponse.Status.

Подробности: http://msdn.microsoft.com/en-us/library/system.web.httpresponse.status(v=vs.71).aspx

0 голосов
/ 23 августа 2011

Итак, из того, что я понимаю, форма требует параметра для значимого отображения результатов. 400 - плохой запрос, хотя я понимаю ваше мышление, спецификация гласит:

"Сервер не смог понять запрос из-за неправильного синтаксиса. Клиент НЕ ДОЛЖЕН повторять запрос без изменений."

В самом чистом смысле, если кто-то просит сказать «EstateReport.aspx» без параметра, сервер все равно может интерпретировать это и ответить соответствующим ответом, так что это не «плохой запрос» в широком смысле.

Я бы посоветовал вам обнаружить отсутствие параметра и вывести соответствующее сообщение об ошибке со ссылкой на страницу, где они могли бы каким-либо образом выбрать подходящий «estateId», поэтому при запросе EstateReport параметр присутствует ,

...