主题几乎说明了一切。我有一个EstateReport Web表单,必须使用EstateId请求参数调用它。如果此参数不存在,我希望返回相应的HTTP错误。如何返回HTTP错误400作为响应?顺便说一句,如果不存在所需的参数,我应该返回一个错误吗?我觉得这更正确,还是重定向到报告的搜索页面?
dsf9zpds1#
您可以:
throw new HttpException(400, "Bad Request");
或
Response.StatusCode = 400; Response.End();
但是我和下面的kd 7有着相同的想法--为什么不向客户端显示一条错误消息,让他们知道出了什么问题?
osh3o9ms2#
因此,据我所知,表单需要一个参数来以有意义的方式显示结果。A 400是一个坏请求,虽然我理解你的想法,但规范中规定:
“由于语法格式不正确,服务器无法理解请求。客户端不应未经修改重复请求。"
从最纯粹的意义上讲,如果有人请求“EstateReport.aspx”而不带参数,服务器仍然可以解释这一点,并以适当的响应进行回复,因此从最广泛的意义上讲,这不是一个“坏请求”。我的建议是,您检测到参数的缺失,并呈现一个适当的错误消息,其中包含一个页面链接,用户可以通过某种方式在该页面中选择适当的“estateId”,这样,当请求EstateReport时,参数就会出现。
ctehm74n3#
更改HttpResponse.Status属性。详细信息:http://msdn.microsoft.com/en-us/library/system.web.httpresponse.status(v=vs.71).aspx
3条答案
按热度按时间dsf9zpds1#
您可以:
或
但是我和下面的kd 7有着相同的想法--为什么不向客户端显示一条错误消息,让他们知道出了什么问题?
osh3o9ms2#
因此,据我所知,表单需要一个参数来以有意义的方式显示结果。A 400是一个坏请求,虽然我理解你的想法,但规范中规定:
“由于语法格式不正确,服务器无法理解请求。客户端不应未经修改重复请求。"
从最纯粹的意义上讲,如果有人请求“EstateReport.aspx”而不带参数,服务器仍然可以解释这一点,并以适当的响应进行回复,因此从最广泛的意义上讲,这不是一个“坏请求”。
我的建议是,您检测到参数的缺失,并呈现一个适当的错误消息,其中包含一个页面链接,用户可以通过某种方式在该页面中选择适当的“estateId”,这样,当请求EstateReport时,参数就会出现。
ctehm74n3#
更改HttpResponse.Status属性。
详细信息:http://msdn.microsoft.com/en-us/library/system.web.httpresponse.status(v=vs.71).aspx