Kendo UI Grid + datasource 錯誤處理 | Kendo UI Grid datasource error handle
(我的 Kendo 版本是 2017.3.913)
最常用的 CRUD 應用元件,KendoUI Grid + Datasource transport,
可以簡單串起 Restful API,
但錯誤處理上有一些地方要注意
使用 transport 時 API 如果不拋出 500 或者 404 之類的錯誤,
而是用處理完成,但處理結果有誤,錯誤訊息放在一個字串屬性裡面的這種模式,
datasource 無法去抓出那個物件秀出來,
這時就要用因為有錯誤所以要拋 exception 的概念,
讓 API 拋出 HttpStatusCode.InternalServerError,
這樣前端 ajax 呼叫時就會抓到錯誤,
然後丟給 datasource 裡的 error 屬性事件處理,
就可以用 e.xhr.responseJSON.Message 抓出錯誤內容,
但也要加上 undefined 偵測,不是只有 API 邏輯錯的時候才會丟錯
所以 error 物件裡面也不是常常都有 xhr
如果是自己寫的介面,例如另外寫 kendo window,
並且自訂按鈕送出 ajax,你就可以控制 ajax 的邏輯,
要用「有錯就是要拋錯」或者「你成功執行那就給我 200,商業邏輯錯誤再另外包」
哪一種抓錯方式都可以處理了。
另外如果新增刪除修改的 API 用 void 類型,datasource 的 transport 會拋一個 JSON parsererror 的錯,但若是給他回傳值,則不會有這個錯
我用的回傳物件格式:
1 | public class OperationOutModel |