繁体   English   中英

如何测试当前请求是否为Controller中的ajax请求?

[英]How can I test if the current request is an ajax request in a Controller?

在某些情况下,我将jQuery.get()请求发送到Action方法,在其他情况下,它是一个浏览器请求。 有没有办法让我区分它们,以便我可以相应地返回不同的动作结果?

我一般用旧的:

if (Request.IsAjaxRequest())

在控制器内部。

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

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

除此之外,我不建议使用Get的AJAX。 最好使用$.post确保安全性。

我非常建议每个MVC开发人员观看HaaHa节目: http ://live.visitmix.com/MIX10/Sessions/FT05

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM