我想创建一个控制器,其操作将仅响应ajax请求。我已经尝试了[ChildActionOnly]
属性,但这停止了所有的ajax调用。那么仅仅为ajax创建一个包含动作的类吗?
其次在创建这样的课程时是否有任何预防措施?
答案 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()
{
}