【问题标题】:How to ignore execution of method from custom attribute?如何忽略自定义属性中方法的执行?
【发布时间】:2018-05-16 13:13:17
【问题描述】:

当方法从非 ajax 执行时,我不需要做任何事情。我知道如何检测 ajax 请求,但我不知道我应该返回什么来忽略。

public class AjaxOnlyAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (!filterContext.HttpContext.Request.IsAjaxRequest())
        {
             filterContext.Result = ???;
        }
    }
}

    [AjaxOnly]
    public async Task<ActionResult> AjaxOnlyMethod()
    {
        //This is method should be ignore if not ajax request
    }

【问题讨论】:

  • 如果不是 Ajax 调用,这对您的应用意味着什么?如果是错误则返回错误响应,否则返回 Ok()。
  • [AjaxOnly] 将过滤所有其他调用,并且仅当请求是 Ajax 调用时才会调用。所以你已经解决了这个问题。其他所有请求都不会到达此方法。

标签: c# asp.net ajax asp.net-ajax


【解决方案1】:

试试这个,我认为您可以重定向到其他一些操作方法,例如如果请求是 Ajax,则返回错误视图的方法

喜欢

filterContext.Result = new RedirectToRouteResult(
                                new RouteValueDictionary(new { action = "SomeOtherActionMethodName" }));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    相关资源
    最近更新 更多