在某些情况下,我将jQuery.get()请求发送到Action方法,在其他情况下,它是一个浏览器请求。我有什么方法可以区分它们,这样我可以相应地返回不同的动作结果吗?
答案 0 :(得分:24)
我通常使用旧的:
if (Request.IsAjaxRequest())
控制器内部。
答案 1 :(得分:2)
如果您确实想要返回不同的操作结果,请使用不同的操作。但是如果它必须相同,你可以改变网址并发送一个额外的参数,如
htt://mysite.com/controller/action?ajax=ajax
除此之外,我不建议使用Get的AJAX。最好使用关于安全性的帖子$.post
。
我非常建议每位MVC开发者观看HaaHa节目:http://live.visitmix.com/MIX10/Sessions/FT05
答案 2 :(得分:2)
如果它们是您想要返回的不同操作,那么您可以根据请求重定向到另一个操作的通用操作
public ActionResult GetData()
{
if(Request.IsAjaxRequest())
return RedirectToAction("AjaxRequest");
else
return RedirectToAction("NonAjaxRequest");
}