1

次のように実装するアクション フィルターを定義すると、次のIActionFilterようになります。

public class FooAttribute : FilterAttribute, IActionFilter
{
    public void OnActionExecuted(ActionExecutedContext filterContext)
    { }

    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
        filterContext.Result = new ContentResult 
        { 
            Content = "Test", 
            ContentEncoding = Encoding.UTF8, 
            ContentType = "text" 
        };
    }
}

そして、それを次のアクション メソッドに適用します。

[Foo]
public ActionResult Index()
{
    return View();
}

これを行うと、Index アクション コードは実行されず、OnResultExecuted メソッドも実行されません。メソッドでResultプロパティを設定したからでしょうか。OnActionExecuting通常の流れが中断される原因となるものは他にありますか?

4

1 に答える 1

0

この効果があるのは Result プロパティだけだと思います..ここを参照してください: 20onactionexecuting&f=false

ユーザーは Result を null 以外に設定することでアクションをキャンセルできます

于 2012-05-17T18:11:24.863 に答える