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

C# 如何测试当前请求是否是控制器中的ajax请求?,c#,jquery,asp.net-mvc,ajax,controller,C#,Jquery,Asp.net Mvc,Ajax,Controller,在某些情况下,我将jQuery.get()请求发送到操作方法,而在其他情况下,它是一个浏览器请求。我是否有办法区分它们,以便相应地返回不同的操作结果?如果您确实希望返回不同的操作结果,请使用不同的操作。但是,如果必须相同,您可以更改url并发送一个额外的参数,如下所示 htt://mysite.com/controller/action?ajax=ajax 此外,我不建议在AJAX中使用Get。最好使用post$。post关于安全性 我非常建议每个MVC开发人员观看HaaHa秀:我通常使用旧的

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

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

htt://mysite.com/controller/action?ajax=ajax
此外,我不建议在AJAX中使用Get。最好使用post
$。post
关于安全性


我非常建议每个MVC开发人员观看HaaHa秀:

我通常使用旧的:

if (Request.IsAjaxRequest())

在控制器内部。

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

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

我的请求是幂等的,所以我不想发帖子。晚些时候,我在这里给你打电话,但你的答案实际上可能比我的(多年前的:)更好,信息更丰富。所以,希望达维杰夫能在某个时候突然出现并改变他的决定!!(顺便说一句,你在那里使用的模式在“旧”时代也是用来做事的),因此基于mvc2/3的模式绝对是一个不错的选择。当心-jimCan有人能给我解释一下这个魔法是怎么起作用的吗?编辑:找到了。