如何传递ControllerBase作为参数

本文关键字:参数 ControllerBase 何传递 | 更新日期: 2023-09-27 18:04:16

我有一个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();
}

如何传递ControllerBase作为参数

要传递当前控制器实例,请使用"this"关键字,如下所示:

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

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