ASP.. NET MVC:从一个控制器调用另一个控制器的动作,并应用ActionFilters



看一下下面的代码:

Get()调用Foobar()Foobaz()时,装饰Foobar()Foobaz()ActionFilter不会被调用。

我如何在Get()内调用其他两个控制器动作,同时也导致SomeActionAnotherAction过滤器执行?

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() }
        });
    }
}

控制器动作不是用来作为方法的。为了使它们正常工作,必须在请求周期内调用它们。也许您的示例过于简单,但看起来您试图将这些"操作"用作标准方法。虽然控制器在技术上可以拥有一个实际上从未打算作为路由暴露的方法,但这样做并不是一个好主意。将逻辑移到您的模型或某个助手类中。

相关内容

  • 没有找到相关文章

最新更新