问题的根本原因是客户端请求的Accept头与服务器返回的数据格式不匹配。以下是解决这个问题的几种方法:
EnableQuery
特性:在控制器的方法中使用EnableQuery
特性可以将OData查询语句应用于返回的数据。这样可以通过在URL中添加$filter
、$orderby
等参数来过滤和排序数据。示例代码如下:[EnableQuery]
public IHttpActionResult Get()
{
// 返回数据
}
application/json
,可以确保服务器返回JSON格式的数据。public IHttpActionResult Get()
{
// 返回数据
Request.Headers.Accept.Clear();
Request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// 返回数据
}
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
// 其他配置
}
}
以上是一些常见的解决方法,根据具体情况选择适合自己的方法进行解决。