WEBAPI返回的数据格式一般是XML和JSON.能根据请求的要求返回.经过试验如下:
public object Get(string uid)
{
return new {msg="成功"};
}
// 调用.使用了jquery的AJAX方法,最后一个参数是返回结果的类型.不同参数时,后台返回的数据类型不同,看来服务端能根据前端请求的数据类型自动生成相应类型返回
$.get('get',function(data){
},'json')
// 结果
{"msg":"成功"} // 返回数据类型参数写json时
<object><msg>成功</msg></object> // 写xml时
关键点:
这个类和方法中,可以修改WEBAPI的很多属性.
public static class WebApiConfig
// 就是注册WEBAPI路由的这个方法里,也可以修改其它东西.
public static void Register(HttpConfiguration config)
{
config.Formatters // 这个属性里包含了返回值格式的信息,经过实验,打出来的数据如下:
// System.Net.Http.Formatting.JsonMediaTypeFormatter // 这个是JSON格式,排在第一位,应该是默认
// System.Net.Http.Formatting.XmlMediaTypeFormatter // XML格式
// System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter // 未研究
// System.Web.Http.ModelBinding.JQueryMvcFormUrlEncodedFormatter // 未研究
}
可以修改这个东西,通过传一个地址参数,让它默认返回JSON?以下代码从网上找的,大概如下.
// 意思是,给jsonformatter这个格式类型增加一个"映射",在URL参数上传入 datatype=json,那么就会返回application/json类型.
// 经过测试,可以.但还是觉得默认的就好,在前端指定返回类型就行了
config.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("datatype", "json", "application/json"));