Action Filter是否可以访问Controller中的私有对象?

时间:2010-07-13 16:47:24

标签: c# asp.net-mvc action-filter

我有

public class FundController 
{
    private Site _site;
    public ViewResult Fund()
    {
    }
}

我想在此基金方法中添加一个动作过滤器:

public class FundController 
{
    private Site _site;

    [MyFilter]
    public ViewResult Fund()
    {
    }
}

但是操作过滤器需要访问_site。这可能吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:6)

将该字段暴露在公共属性中,然后将过滤器中的控制器转换为FundController

例如:

FundController controller = (FundController)filterContext.Controller;

Site site = controller.Site;

答案 1 :(得分:-1)

您还可以使用必需参数设置ActionFilter,然后在站点中传递

[MyFilter(_site)]
public ViewResult Fund() {
}