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