问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c#mvc中的webapi怎么迫使服务端返回字符串

发布网友 发布时间:2022-05-10 21:23

我来回答

2个回答

热心网友 时间:2023-11-02 02:09

返回值是string就好了。

public string Get(int id)
{
    return "字符串";
}

用AJAX取json格式的就是这样的。

$.ajax({url:'/api/Values/1',dataType:'json',type:'get',success:function(data){console.log(data);}})

 主要是客户端的设置,如果客户端能够支持XML,就会返回XML格式的,如果能支持json,就会直接返回字符串。

Accept:application/json, text/javascript, */*; q=0.01

像这样就是字符串的

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

像这样就是xml的

还可以这样:

var formatters = GlobalConfiguration.Configuration.Formatters;
formatters.Remove(formatters.XmlFormatter);

这样就可以强制不使用XML格式返回

热心网友 时间:2023-11-02 02:10

web api 默认的已 xml 格式返回数据
现在开发一般都是以 json 格式为主
下面配置让 webapi 默认返回 json ,在需要返回 xml 时只需要加一个查询参数 datatype=xml 即可返回 xml 格式数据

配置如下:
1.新建 一个 mvc webapi 项目 (framework4.0)
2.找到默认的 WebApiConfig.cs 文件
3.修改 WebApiConfig.cs 文件
<span style="font-family: Arial, Helvetica, sans-serif;">using System;</span>
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Formatting;
using System.Web.Http;

namespace MvcWebApi
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
.......

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
//默认返回 json
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(
new QueryStringMapping("datatype", "json", "application/json"));
//返回格式选择 datatype 可以替换为任何参数
GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add(
new QueryStringMapping("datatype", "xml", "application/xml"));
}
}
}

4.修改默认路由规则 WebApiConfig.cs 文件中
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Formatting;
using System.Web.Http;

namespace MvcWebApi
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
//新加的规则
config.Routes.MapHttpRoute(
name: "DefaultApi2",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
//新加的规则
config.Routes.MapHttpRoute(
name: "DefaultApi1",
routeTemplate: "api/{controller}/{action}",
defaults: new { id = RouteParameter.Optional }
);
//默认路由
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
。。。。。
}
}
}

5.添加测试 action
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace MvcWebApi.Controllers
{
public class ValuesController : ApiController
{
/// <summary>
/// web api 默认将以 get 开头的只支持 get 请求,post 开头的支持支 post 请求
/// </summary>
/// <returns></returns>
[System.Web.Http.HttpGet]
[System.Web.Http.HttpPost]
public MyClass GetMyClass()
{
return new MyClass()
{
id=1111,
name="张三",
time=DateTime.Now
};
}
}

public class MyClass
{
public int id { set; get; }
public string name { set; get; }
public DateTime time { set; get; }
}
}

6.测试

请求地址:http://localhost:61667/api/values/getmyclass
响应内容:

{"id":1111,"name":"张三","time":"2015-09-29T16:43:07.4731034+08:00"}

请求地址:http://localhost:61667/api/values/getmyclass?datatype=xml
响应内容:
<MyClass><id>1111</id><name>张三</name><time>2015-09-29T16:43:45.3663004+08:00</time></MyClass>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
弱弱的问一句R9 270X显卡怎么样~ 能带得起我的AMD 240CPU么?_百度知 ... i54570cpu华硕z87a主板要配多少的内存条和显卡 i5 3570k配R9 270X显卡,用什么主板和电源? 很容易上火是什么原因 口干舌燥五心烦热失眠多梦夜不能寐请问是什么原因,吃什么能有效... 想问看大家对老妻少夫的问题有何看法? ...战记第十三章第6关打法 山海战记13-6攻略-手游攻略-游戏鸟手游网 ...战记第十七章第1关打法 山海战记17-1攻略-手游攻略-游戏鸟手游网 ...山海战记9-6图文攻略-手游攻略-游戏鸟手游网 ...战记第十二章第2关打法 山海战记12-2攻略-手游攻略-游戏鸟手游网 长时间保存牛奶需要什么杀菌方式? 巴氏消毒法对卤鸡爪进行二次灭菌会影响他的口味吗? 牛奶能用巴氏消毒机二次杀菌吗 普联wdr 7400这个型号路由器有百兆的端口和千兆端口,两者区别大吗? 找好听的昵称。 90后 。求 360清理了“qq账户保护功能组件”之后,qq号被盗了好几次,这有影响么? 90后 求好听英文名一个 谢谢 90后女生啥名字最好听? 帮我取一个90后好听的QQ网名…嘿嘿 姓孟,90后好听名字 根据生辰八字,90后卢姓属马的女生,怎样起名才更具内涵又好听?【1990年农历四月初一18:00左右出生】 给我CF取个好听的90后男生的名字,叫某某先森的,最好加点符号,一定要好听的,某某先森。求求求!! 90后男生的时尚名字 好听 印象深刻 要新颖点的 ZW消防增压稳压设备的选型对照表 请问天津哪里有帮助中小企业贷款的中介机构? 有没有靠谱点的贷款中介啊,急用,来个靠谱点的? 消防增压稳压给水设备多少钱一套 消防稳压设备显示0.256是什么意思 消防增压稳压设备参数咨询 消防增压稳压设备选用与安装的目录 饮料重复杀菌风味变化 我是熟肉加工者,除了杀菌锅以外还有什么方法杀菌呢? c#webapi接收中文怎么编码 包装及杀菌方式对豆奶产品的保质期有何影响? webapi同时支持get和post 怎么接受多个参数 啤酒只能用巴氏杀菌吗 webapi读取json webapi读取json时,获取的数据为空(webhook) 怎么获取post页面webapi 如何在webapi中使用filter 荣耀60无法安装伊利软件 在外地怎么申请离婚 在外地如何申请离婚 微信实名更改后用别的身份证号实名还是同一个吗? 如果微信换了一个身份证的另一个身份证里的游戏数据会不会丢失? 一个身份证注册了两个微信如果另一个重新注册一个身份证那么另外一个会不会改变? 微信注册临时身份证会影响身份证原件的使用吗? 更换别人的身份证号跟银行卡会导 致原持卡人清除吗? 在同一部手机上怎么注册另一个? 如何在手机上申请第二个 如何申请第二个?