gpt4 book ai didi

c# - Asp.Net Core MVC 中的 Request.IsAjaxRequest() 在哪里?

转载 作者:IT王子 更新时间:2023-10-29 03:50:59 33 4
gpt4 key购买 nike

为了了解有关令人兴奋的新 Asp.Net-5 框架的更多信息,我尝试使用新发布的 Visual Studio 2015 CTP-6 构建 Web 应用程序。

大多数事情看起来很有前途,但我似乎找不到 Request.IsAjaxRequest() - 我在旧 MVC 项目中经常使用的功能。

有没有更好的方法来做到这一点 - 这使得他们删除了这个方法 - 或者它是否“隐藏”在其他地方?

感谢您提供关于在哪里可以找到它或该怎么做的任何建议!

最佳答案

我有点困惑,因为标题提到了 MVC 5。

搜索 Ajax in the MVC6 github repo doesn't give any relevant results , 但您可以自己添加扩展名。从 MVC5 项目反编译给出了一段非常简单的代码:

/// <summary>
/// Determines whether the specified HTTP request is an AJAX request.
/// </summary>
///
/// <returns>
/// true if the specified HTTP request is an AJAX request; otherwise, 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 HttpRequestBase request)
{
if (request == null)
throw new ArgumentNullException(nameof(request));
if (request["X-Requested-With"] == "XMLHttpRequest")
return true;
if (request.Headers != null)
return request.Headers["X-Requested-With"] == "XMLHttpRequest";
return false;
}

MVC6 Controller似乎在使用 Microsoft.AspNet.Http.HttpRequest ,你必须检查 request.Headers collection通过对 MVC5 版本进行一些调整以获得适当的 header :

/// <summary>
/// Determines whether the specified HTTP request is an AJAX request.
/// </summary>
///
/// <returns>
/// true if the specified HTTP request is an AJAX request; otherwise, 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;
}

或直接:

var isAjax = request.Headers["X-Requested-With"] == "XMLHttpRequest"

关于c# - Asp.Net Core MVC 中的 Request.IsAjaxRequest() 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29282190/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com