如何从Web表单请求返回HTTP 400 - 错误请求错误?

Pro*_*ofK 2 asp.net webforms asp.net-4.0

这个主题几乎说明了一切.我有一个必须使用EstateId请求参数调用的EstateReport Web表单.我想返回一个合适的HTTP错误,这个参数我们不存在.如何返回HTTP错误400作为我的回复?

在切线上,如果不存在所需参数,我应该返回错误,我觉得更正确,还是重定向到报告的搜索页面,这更加用户友好?

Ada*_*SFT 24

您可以:

throw New HttpException(400, "Bad Request");
Run Code Online (Sandbox Code Playgroud)

要么

Response.StatusCode = 400;
Response.End();
Run Code Online (Sandbox Code Playgroud)

但是我的想法与下面的kd7一样 - 为什么不向客户端显示错误信息让他们知道什么是错的?


kd7*_*kd7 2

因此,据我了解,表单需要一个参数才能以有意义的方式显示结果。400 是一个错误的请求,虽然我理解你的想法,但规范指出:

“由于语法错误,服务器无法理解该请求。客户端不应在未经修改的情况下重复该请求。”

从最纯粹的意义上来说,如果有人请求说“EstateReport.aspx”而不带参数,服务器仍然可以解释它并回复适当的响应,因此从最广泛的意义上来说,这不是一个“错误的请求”。

我建议您检测参数的缺失,并呈现一条适当的错误消息,其中包含指向页面的链接,在该页面中,他们可以通过某种方式选择适当的“estateId”,因此当请求 EstateReport 时,该参数就会存在。