C# 如何在asp.net api中查看ajax调用请求的数据类型

C# 如何在asp.net api中查看ajax调用请求的数据类型,c#,jquery,asp.net,ajax,api,C#,Jquery,Asp.net,Ajax,Api,在ASP.NET API中,当您像这样在ajax中设置请求的数据类型时,如何获得ajax调用请求的数据类型 $.ajax({ url: url, data: params, dataType: "xml", type: "GET", statusCode: { 200: function (data) { } } 然后,在我的控制器中,我想知道我是请求XML还是JSON 提前感谢如果我没有弄错,此

在ASP.NET API中,当您像这样在ajax中设置请求的数据类型时,如何获得ajax调用请求的数据类型

$.ajax({
    url: url,
    data: params,
    dataType: "xml",
    type: "GET",
    statusCode: {
        200: function (data) {

            }
        }
然后,在我的控制器中,我想知道我是请求XML还是JSON


提前感谢

如果我没有弄错,此信息将在您的HTTP请求中转换为“接受”标题。我不是100%确定,因为这也可能只是JQuery保存的信息,以便更好地解码答案。无论如何,Ajax设置中还有一个
accepts
参数,用于确定请求的“Accept”头。但是JQuery的文档说,
接受
参数默认值取决于
数据类型
参数,所以我想说我的第一个猜测是正确的

要从控制器检索标头,只需调用:

IEnumerable<string> headerValues = request.Headers.GetValues("MyCustomID");
var id = headerValues.FirstOrDefault();
IEnumerable headerValues=request.Headers.GetValues(“MyCustomID”);
var id=headerValues.FirstOrDefault();

(有关此方法的错误处理,请参阅)

这将出现在accept http标头中-asp.net webapi将为您执行大部分内容类型协商-请参阅


jQuery将把它作为application/json或application/xml放在accept标题中,您可以手动从请求中获取它。标题

您能解释一下您想知道什么吗?刚刚编辑了问题。因此,在控制器中,我希望能够在数据类型之后查看我在ajax请求中键入的内容:(“xml”或“JSON”)数据类型值只需在请求中添加
内容类型
头。您的控制器将检查此标题以选择要执行的操作。True。在Request.Headers.Accept.First()。