繁体   English   中英

ASP.NET Web API用户选择的内容类型

[英]asp.net web api user selected content type

Asp.net的默认返回类型是XML。 但是我可以在配置设置中更改它。

public static void Register(HttpConfiguration config)
{ 
    config.Formatters.Clear();
    // config.Formatters.Add(new XmlMediaTypeFormatter());
    config.Formatters.Add(new JsonMediaTypeFormatter());
}

我的控制器是:

public class ProductController: ApiController
{
    public IEnumerable<Product> Get()
    {
        return new List<Product> {
           new Product {Name = "p1", Price = 10}, 
           new Product {Name = "p2", Price = 20}
        };
    }
}

现在我要这样:

  • 用户应使用参数指定返回类型。
  • http://domain/product/get (格式xml或json)

我不想更改控制器动作。

有什么方法可以使用Route参数或任何其他级别执行此操作?

默认情况下,不指定格式化程序,Web api将返回xml或json。

如果需要返回json,只需在客户端的标头中指定以下内容:

Accept: application/json

json提琴手的请求和响应

使用Javascript

   var urlString = "http://localhost/api/values/Get";

    $.ajax({
        url: urlString,
        type: 'GET',
        data: {id : 1},
        dataType: 'json',
        contentType: 'application/json',
        success: function (data) { console.log(data); }
    });

或xml:

Accept: application/xml

xml提琴手响应请求

使用Javascript

var urlString = "http://localhost/api/values/Get";

$.ajax({
    url: urlString,
    type: 'GET',
    data: {id : 1},
    dataType: 'xml',
    contentType: 'application/xml',
    success: function (data) { console.log(data); }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM