有啥方法可以在 .net core 3.1 的基本控制器上获取 XMLHttpRequest 的数据类型

Posted

技术标签:

【中文标题】有啥方法可以在 .net core 3.1 的基本控制器上获取 XMLHttpRequest 的数据类型【英文标题】:Is there any way to get data type of XMLHttpRequest on base controller in .net core 3.1有什么方法可以在 .net core 3.1 的基本控制器上获取 XMLHttpRequest 的数据类型 【发布时间】:2021-11-02 05:57:55 【问题描述】:

这是任何 Jquery ajax POST 请求;

$.ajax(
    type: "POST",
    url: "/Customers/GetAll",
    contentType: "application/json",
    dataType: "json",
    success: function(response) 
        console.log(response);
    ,
    error: function(response) 
        console.log(response);
    
);

这是上面 ajax 请求的我的控制器操作方法;

public IActionResult GetAll()

    //Method body...

如何在基本控制器或操作方法中获取任何 ajax 请求的dataType

【问题讨论】:

【参考方案1】:

尝试在标题中获取accept

行动:

 public IActionResult GetAll()
        
            string dataType = HttpContext.Request.Headers["accept"].ToString();
            //Method body...
        

【讨论】:

【参考方案2】:

可以在 HttpContext 对象上检索标头。

if(HttpContext.Request.Headers.TryGetValue("accept", out var acceptHeaders)) 
   var firstAcceptHeader = acceptHeaders.FirstOrDefault();

您还可以使用索引Headers["accept"] 访问标头值,但请注意,如果没有接受标头,无论出于何种原因,这都会引发 NullReferenceException。

【讨论】:

以上是关于有啥方法可以在 .net core 3.1 的基本控制器上获取 XMLHttpRequest 的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 3.1使用AutoMapper(基本使用)

Asp.Net Core 3.1 控制器方法未调用

到 Azure ACI 的基本容器化 ASP.NET 3.1 Core 应用部署失败

.net core 3.0和.net5有什么区别

.Net 5 .Net Core 3.1 mvc 调试js或cshtml 视图运行时编译 解决方案

如何在启动类中读取应用程序 URL,特别是在 .net core 3.1 中的“ConfigureService”方法中?