3

看看下面的代码。

Get()调用Foobar()and时,修饰Foobaz()的s不被调用。ActionFilterFoobar()Foobaz()

我怎样才能从内部调用这两个控制器动作Get(),同时导致SomeActionandAnotherAction过滤器执行?

public class Features : Controller
{
    [SomeAction]
    public bool Foobar(string id = null)
    {
        return true;
    }

    [AnotherAction]
    public bool Foobaz()
    {
        return false;
    }

    public JsonResult Get()
    {
        return this.JsonResult(new Dictionary<string, bool>() 
        {
            { "foobar", this.Foobar() },
            { "foobaz", this.Foobaz() }
        });
    }
}
4

1 回答 1

4

控制器操作并不意味着用作方法。为了使它们正常运行,必须在请求周期内调用它们。也许您的示例过于简单,但看起来您正试图将这些“操作”用作标准方法。虽然从技术上讲,控制器可以拥有一个从未真正打算公开为路由的方法,但做这种事情并不是一个好主意。将逻辑移到您的模型或某个辅助类中。

于 2013-04-18T17:52:16.170 回答