關於C# webapi ,接口返回字符串和json格式 ,返回值中有反斜杠


最近遇到一個比較郁悶的問題,記錄一下

寫了一個接口,想返回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 文件

  

 

 可以了,結束 !

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM