.NET5 MVC6 判断是否为ajax请求

作者:outlela  来源:stackoverflow   发布时间:2021-1-25 16:51:23

在开发过程中,有时候需要判断是否是ajax请求,还是页面请求,根据请求的种类不同,来返回不一样值。

在.NET5的MVC6 中已经没有了MVC5中的IsAjaxRequest方法,需要自己扩展,记录一下,以备后用。


在Controller中使用方法:

/// <summary>
/// 判断指定的 HTTP 请求是否为 AJAX 请求。
/// </summary>
/// 
/// <returns>
/// 如果指定的 HTTP 请求是 AJAX 请求,则为 true;否则为 false。
/// </returns>
/// <param name="request">The HTTP request.</param><exception cref="T:System.ArgumentNullException">The <paramref name="request"/> parameter is null (Nothing in Visual Basic).</exception>
public static bool IsAjaxRequest(this HttpRequest request)
{
  if (request == null)
    throw new ArgumentNullException(nameof(request));

  if (request.Headers != null)
    return request.Headers["X-Requested-With"] == "XMLHttpRequest";
  return false;
}

在Razor(.cshtml)页面中:

var isAjax = Context.Request.Headers["X-Requested-With"] == "XMLHttpRequest";

返回结果如果为true,即为ajax请求,否则为正常的页面请求。


*本文最后修改于:2021-1-25 17:15:57
本文标签: .NET5 MVC5 MVC6 IsAjaxRequest ajax请求 .Net Core
本文链接地址:https://outlela.com/Code/105.html
转载或引用请保留地址并注明出处:outlela.com