主題幾乎說明了一切。我有一個EstateReport Web窗體,必須使用EstateId請求參數調用。我想返回一個合適的HTTP錯誤,這個參數我們不存在。我如何返回HTTP錯誤400作爲我的迴應?如何從Web表單請求返回HTTP 400 - 錯誤請求錯誤?
在一個切線,我應該返回一個錯誤,如果需要的參數不存在,這是我的感覺是比較正確的,或重定向到搜索頁的報告,這是對用戶更友好?
主題幾乎說明了一切。我有一個EstateReport Web窗體,必須使用EstateId請求參數調用。我想返回一個合適的HTTP錯誤,這個參數我們不存在。我如何返回HTTP錯誤400作爲我的迴應?如何從Web表單請求返回HTTP 400 - 錯誤請求錯誤?
在一個切線,我應該返回一個錯誤,如果需要的參數不存在,這是我的感覺是比較正確的,或重定向到搜索頁的報告,這是對用戶更友好?
左右。 400是一個錯誤的請求,雖然我理解你的想法,規範指出:
「由於格式錯誤,服務器無法理解請求,客戶端不應該不加修改地重複請求。
從最純粹的意義上講,如果有人要求說「EstateReport.aspx」沒有參數,服務器仍然可以解釋並回復一個適當的響應,所以它不是最廣泛意義上的「不良請求」。
我會建議你檢測缺少參數,並通過鏈接呈現相應的錯誤消息,通過某種方式選擇合適的「estateId」,因此當需要EstateReport時,參數爲當下。
更改HttpResponse.Status財產。
詳情:http://msdn.microsoft.com/en-us/library/system.web.httpresponse.status(v=vs.71).aspx
,您可以:
throw New HttpException(400, "Bad Request");
或
Response.StatusCode = 400;
Response.End();
,但我有同樣的想法如下KD7 - 爲什麼不顯示,讓他們知道什麼是錯的錯誤信息到客戶端?被機器要求
最好避免Response.End()。 http://stackoverflow.com/a/11505401/991267 –
感謝輸入@ KD7,但我也在考慮該報告的網址,這樣的錯誤信息應該是機器可讀和狀態代碼是機器可讀的。 – ProfK
啊,我明白了......我只是認爲人類會通過瀏覽器請求頁面。 – kd7
到目前爲止,這將是隻有人類,但我經常會犯思維超前太多。 :-)很可能是服務請求報告,然後將它的PDF版本發佈給訂閱者。我不希望他們全部通過電子郵件發送PDF格式的錯誤消息。 – ProfK