最近遇到一个比较郁闷的问题,记录一下
写了一个接口,想返回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 文件
可以了,结束 !