asp.net 如何从Web表单请求返回HTTP 400 - Bad Request错误?

a14dhokn  于 2023-02-20  发布在  .NET
关注(0)|答案(3)|浏览(165)

主题几乎说明了一切。我有一个EstateReport Web表单,必须使用EstateId请求参数调用它。如果此参数不存在,我希望返回相应的HTTP错误。如何返回HTTP错误400作为响应?
顺便说一句,如果不存在所需的参数,我应该返回一个错误吗?我觉得这更正确,还是重定向到报告的搜索页面?

dsf9zpds

dsf9zpds1#

您可以:

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

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

但是我和下面的kd 7有着相同的想法--为什么不向客户端显示一条错误消息,让他们知道出了什么问题?

osh3o9ms

osh3o9ms2#

因此,据我所知,表单需要一个参数来以有意义的方式显示结果。A 400是一个坏请求,虽然我理解你的想法,但规范中规定:

“由于语法格式不正确,服务器无法理解请求。客户端不应未经修改重复请求。"

从最纯粹的意义上讲,如果有人请求“EstateReport.aspx”而不带参数,服务器仍然可以解释这一点,并以适当的响应进行回复,因此从最广泛的意义上讲,这不是一个“坏请求”。
我的建议是,您检测到参数的缺失,并呈现一个适当的错误消息,其中包含一个页面链接,用户可以通过某种方式在该页面中选择适当的“estateId”,这样,当请求EstateReport时,参数就会出现。

相关问题