Request.IsAjaxRequest() MVC6 中的替代方案
Request.IsAjaxRequest() alternative in MVC6
我正在尝试 运行 这个例子 Rendering Partial Views using ajax,但我遇到了以下编译错误:
'HttpRequest' 不包含 'IsAjaxRequest' 的定义,并且找不到接受类型 'HttpRequest' 的第一个参数的扩展方法 'IsAjaxRequest'。
public ActionResult ItemsList(string ID)
{
Item item = Service.GetItemById(ID);
if (Request.IsAjaxRequest())
{
return PartialView("viewPath", item);
}
else
{
return View("viewPath", item);
}
}
检查用户代理,如下所示:
var isAjax = Request.Headers["X-Requested-With"] == "XMLHttpRequest";
Ricardo Peres 的回答适用于 ajax 请求,但缺少新的 Fetch 类型。这对我有用:
internal static class RequestHelpers
{
internal static bool IsAjaxRequest(this HttpRequest request)
{
return string.Equals(request.Query["X-Requested-With"], "XMLHttpRequest", StringComparison.Ordinal) ||
string.Equals(request.Headers["X-Requested-With"], "XMLHttpRequest", StringComparison.Ordinal) ||
string.Equals(request.Headers["X-Requested-With"], "Fetch", StringComparison.Ordinal);
}
}
我正在尝试 运行 这个例子 Rendering Partial Views using ajax,但我遇到了以下编译错误:
'HttpRequest' 不包含 'IsAjaxRequest' 的定义,并且找不到接受类型 'HttpRequest' 的第一个参数的扩展方法 'IsAjaxRequest'。
public ActionResult ItemsList(string ID)
{
Item item = Service.GetItemById(ID);
if (Request.IsAjaxRequest())
{
return PartialView("viewPath", item);
}
else
{
return View("viewPath", item);
}
}
检查用户代理,如下所示:
var isAjax = Request.Headers["X-Requested-With"] == "XMLHttpRequest";
Ricardo Peres 的回答适用于 ajax 请求,但缺少新的 Fetch 类型。这对我有用:
internal static class RequestHelpers
{
internal static bool IsAjaxRequest(this HttpRequest request)
{
return string.Equals(request.Query["X-Requested-With"], "XMLHttpRequest", StringComparison.Ordinal) ||
string.Equals(request.Headers["X-Requested-With"], "XMLHttpRequest", StringComparison.Ordinal) ||
string.Equals(request.Headers["X-Requested-With"], "Fetch", StringComparison.Ordinal);
}
}