asp.net-mvc – ASP.NET MVC:对动作执行AJAX请求

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ASP.NET MVC:对动作执行AJAX请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一种方法来强制控制器的操作只能通过 AJAX请求进行访问.

调用action方法之前,最好的方法是什么?我想从我的动作方法重构以下内容

if(Request.IsAjaxRequest())
    // Do something
else
    // return an error of some sort

我设想的是一个ActionMethodSelectorAttribute,可以像[AcceptVerbs]属性一样使用.我没有经验,这样的定制属性,但.

解决方法

创建一个触发OnActionExecuting的ActionFilter
public class AjaxActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (!filterContext.HttpContext.Request.IsAjaxRequest())
            filterContext.Result = new RedirectResult(//path to error message);           
    }
}

设置过滤器的Result属性将阻止ActionMethod的执行.

然后,您可以将其作为属性添加到您的ActionMethods中.

猜你在找的asp.Net相关文章