如何将ControllerBase作为参数传递

时间:2014-05-21 07:11:00

标签: c# asp.net-mvc asp.net-mvc-4

我有一个asp.net mvc 4项目,我有很多行的公开代码。经过一番思考后,我决定重构它。我提出了一些带有ViewBags的代码。并发送到此方法ControllerBase作为参数,但不知道如何将其作为参数传递到我的控制器内。有人帮帮我吗?

public static void ReturnViewBag(ControllerBase target, string query)
    {
        var model = new Repository<Table>().GetRow(name);
        if (model != null) {
                target.ViewBag.SomeName = model.SomeColumn;
        }
    }

public ActionResult Index() {
    this._someHelper.ReturnViewBag(/*here is some var which i dont know*/, someQuery);
    return View();
}

2 个答案:

答案 0 :(得分:0)

如果您想要正在使用的当前控制器的ControllerBase,您可以使用: this.ControllerContext.Controller

答案 1 :(得分:0)

要传递当前控制器实例,请使用&#34;此&#34;关键字如下:

public ActionResult Index() {
    this._someHelper.ReturnViewBag(this, someQuery);
    return View();
}