如何为ajax请求创建控制器?

时间:2015-12-06 02:44:47

标签: asp.net-mvc-4

我想创建一个控制器,其操作将仅响应ajax请求。我已经尝试了[ChildActionOnly]属性,但这停止了所有的ajax调用。那么仅仅为ajax创建一个包含动作的类吗?

其次在创建这样的课程时是否有任何预防措施?

1 个答案:

答案 0 :(得分:1)

要讨论你遇到的问题,没有直接的方法/属性只能响应ajax请求。但是你可以创建自己的属性来响应ajax请求。

在MVC中,ajax请求可以使用Request.IsAjaxRequest()

拦截

以下是代码段:

public class isAjaxAttribute : ActionMethodSelectorAttribute 
{
    public override bool IsValidRequest(ControllerContext controllerContext, MethodInfo methodInfo)
    {
        return controllerContext.RequestContext.HttpContext.Request.IsAjaxRequest();
    }
}

现在您可以在控制器方法上使用此属性,如

[isAjax]
public ActionResult ajaxMethod()
{

}