代码之家  ›  专栏  ›  技术社区  ›  DaveDev

如何测试当前请求是否是控制器中的ajax请求?

  •  2
  • DaveDev  · 技术社区  · 14 年前

    在某些情况下我会jQuery.get()请求一个动作方法,在其他情况下它是一个浏览器请求。有没有什么方法可以让我区分它们,这样我就可以相应地返回不同的操作结果?

    3 回复  |  直到 14 年前
        1
  •  27
  •   jim tollan    14 年前

    我通常使用旧的:

    if (Request.IsAjaxRequest())
    

        2
  •  2
  •   Stefanvds    14 年前

    如果确实要返回不同的操作结果,请使用不同的操作。但是,如果必须是相同的,您可以更改url并发送一个额外的参数

    htt://mysite.com/controller/action?ajax=ajax
    

    $.post 关于安全。

    http://live.visitmix.com/MIX10/Sessions/FT05

        3
  •  2
  •   MrBliz    14 年前

    如果它们是您想要返回的不同操作,那么您可以有一个通用操作,根据请求重定向到另一个操作

    public ActionResult GetData()
    {
      if(Request.IsAjaxRequest())
            return RedirectToAction("AjaxRequest");
      else
            return RedirectToAction("NonAjaxRequest");
    }