2010-03-18 121 views
12

我有兩個自定義的ActionFilter的動作。停止繼續ASP.NET MVC ActionFilter

在第一個actionfilters中,如果條件未滿足(經典授權),我執行重定向。而在另一個我有一個重定向執行,如果不滿足其他條件(比如角色檢查)。

但我不想繼續第二個actionFilter,如果第一個不符合。這個怎麼做?

+0

這個[回覆](https://stackoverflow.com/a/9842910/2460971)上的類似問題更詳細。 – numaroth 2017-05-26 14:58:18

回答

21

filterContext.Result屬性設置爲任何非空值將停止執行後面的過濾器。因此,如果您的第一個篩選器設置filterContext.Result = new RedirectResult(...),則第二個篩選器和操作方法將永遠不會運行。這就是內置的[Authorization]過濾器的工作原理。

+7

我只好回到MVC2項目中,所以如果有人仍然需要這個項目: 如果你想在你的Action中使用'return null'的正常功能,你可以執行'filterContext.Result = new EmptyResult ();' – 2012-03-27 20:10:50