最近遇到一個比較郁悶的問題,記錄一下
寫了一個接口,想返回json 數據,但是返回值中總是帶有反斜杠。。。 ,下面來看原因
首先,配置 webapi的路由
App_Start 文件夾下 ,WebApiConfig 修改一下: ps 個人習慣做如下修改
config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "webapi/{controller}/{id}", defaults: new { id = RouteParameter.Optional } );
改為:
config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "webapi/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } );
,然后 Controller代碼如下:
然后這個API的效果圖如下:
然后把返回值 類型改成對象
結果變為:
OK,問題解決。 但是為啥說是一個郁悶問題,因為我剛開始其他項目是這么寫的 :
但是這個接口 效果如下:
為啥這個 返回值是 string,但是卻沒有返回 帶反斜杠的字符串呢。。 郁悶了半天,才發現這個 API 繼承的類是 Controller 類。 而上面第一種介紹的API繼承的是 ApiController ,好了,找到原因了,區別就在這。使用繼承Controller 就可以 返回不帶反斜杠 json數據 。 或者繼承ApiController ,但是返回實體,也可以返回不帶反斜杠的json格式數據。
當然,多補充一句,如果需要使用Controller ,也需要配置路由,再App_Start文件夾下 RouteConfig.cs 文件
可以了,結束 !