欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-15 09:37:25
最近遇到一个比较郁闷的问题,记录一下 写了一个接口,想返回json 数据,但是返回值中总是带有反斜杠。。。 ,下面来看原因 首先,配置 webapi的路由 App_Start 文件夹下 ,WebApiConfig 修改一下: ps 个人习惯做如下修改 改为: ,然后 Controller代码如下: ......

最近遇到一个比较郁闷的问题,记录一下

写了一个接口,想返回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代码如下:

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

 

 

然后这个api的效果图如下:

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

 

 

然后把返回值 类型改成对象 

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

 

 结果变为:

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

 

 

ok,问题解决。 但是为啥说是一个郁闷问题,因为我刚开始其他项目是这么写的 :

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

 

 

但是这个接口 效果如下:

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

 

 

为啥这个 返回值是 string,但是却没有返回 带反斜杠的字符串呢。。 郁闷了半天,才发现这个 api 继承的类是 controller 类。 而上面第一种介绍的api继承的是 apicontroller ,好了,找到原因了,区别就在这。使用继承controller 就可以 返回不带反斜杠 json数据 。 或者继承apicontroller ,但是返回实体,也可以返回不带反斜杠的json格式数据。

当然,多补充一句,如果需要使用controller ,也需要配置路由,再app_start文件夹下 routeconfig.cs 文件

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

 

 可以了,结束 !