如何知道asp.net mvc中的请求是否是ajax?

Omu*_*Omu 105 asp.net ajax asp.net-mvc

任何人如何知道请求是否是ajax?(我正在使用jquery for ajax)

Bui*_*ted 175

Request.IsAjaxRequest如果您使用的是更高版本的MVC,也可以使用.我没有版本1所以我不能说它是否在版本1中.

如果您需要在Global.asax.cs中进行此检查,请尝试以下操作: new HttpRequestWrapper(Request).IsAjaxRequest()

  • new HttpRequestWrapper(Request).IsAjaxRequest(); (19认同)
  • Application_Error中没有@BuildStarted (2认同)
  • 顺便说一句:如果您在自定义授权过滤器内,请使用它来获取请求上的 IsAjaxRequest 方法:filterContext.HttpContext.Request.IsAjaxRequest (2认同)

Red*_*ter 69

jQuery发出的所有AJAX调用都会添加一个标头来表明它是AJAX.要检查的标头是X-Requested-With,XMLHttpRequest当它是AJAX调用时的值.

请注意,AJAX请求是正常的GET或POST,因此除非您(或您的AJAX库如jQuery)在请求中添加额外的标头,否则无法确定它是否是AJAX.

  • 好的,那么如何在asp.net中检查这个头? (3认同)
  • @Omu:`Request.Headers ["X-Requested-With"]`或类似的.检查MSDN.标题**始终与请求相关. (3认同)

Pio*_*zyż 50

它适用于ASP.NET MVC 3

if (Request.IsAjaxRequest())
{
     // ajax request handled
}
Run Code Online (Sandbox Code Playgroud)