簡體   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