我正在使用nopCommerce,但我需要在我唯一的Action Filter中添加,但是,我不想修改核心控制器以避免我的代碼被覆蓋一個新的更新被髮布。ASP.NET MVC:在不修改控制器的情況下注冊動作篩選器
我設置我的行爲過濾器:
public class ProductActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext.Result is ViewResult)
{
...
}
base.OnActionExecuted(filterContext);
}
}
如果我修改控制器,我可以只添加[ProductActionFilter]
我想要它分配給動作。
有沒有一種方法可以在不修改控制器的情況下將自定義動作過濾器註冊到特定動作?
感謝您的答覆。全局過濾器看起來像是一個合適的選項,正如您所說,我可以檢查特定的控制器/操作。只是拋出一些東西,而不是使用'GlobalFilters.Filters.Add','FilterProviders.Providers.Add'的工作原理是什麼?我不是100%確定它是如何工作的,但我讀過它可以讓你指定一個特定的控制器/操作... – 2012-01-09 10:25:01
@Scrooby是的,FilterProvider也可以工作。請檢查http://stackoverflow.com/questions/5312624/filters-add-vs-filterproviders-providers-add。 – sashaeve 2012-01-09 10:43:55