首页 > 解决方案 > 如何使用我的自定义方法扩展控制器类

问题描述

我想从扩展的控制器类中轻松获取我的方法,并向 Controller 类添加一些方法以在所有其他控制器中使用,如下所示:

扩大

public string GetString()
{
    return "iamanexample";
}

身份验证控制器

public class AuthenticationController : Controller
{
   public IActionResult Index()
   {
       string getMyStr = GetString();
       return View();
   }
}

我是否必须创建一个由 Controller 类继承的自定义类并在其中添加我的方法,然后使用我的自定义控制器类?或者有没有其他解决方案可以做到这一点?

标签: c#asp.netasp.net-core

解决方案


你可以去继承,也可以创建控制器的扩展方法,我更喜欢后一个版本。

要创建扩展方法,您可以创建一个静态类并在该类中创建一个静态方法。

public static class ControllerExtensions
{
     public static string GetString(this Controller controller)
     {
          return "iamanexample";
     } 
}

然后,您可以通过任何控制器轻松访问它,通过编写,

string exampleString = this.GetString();

推荐阅读