我想轻松地从扩展控制器类中获取方法,并向Controller类中添加一些方法,以便在所有其他控制器中使用,例如:
扩展
public string GetString()
{
return "iamanexample";
}
AuthenticationController
public class AuthenticationController : Controller
{
public IActionResult Index()
{
string getMyStr = GetString();
return View();
}
}
我是否必须创建一个由Controller类继承的自定义类,并在其中添加我的方法,然后使用我的自定义控制器类?还是有其他解决方案?
答案 0 :(得分:2)
您可以继承,也可以创建Controller的扩展方法,我更喜欢后者。
要创建扩展方法,可以创建一个静态类,并在该类中创建一个静态方法。
public static class ControllerExtensions
{
public static string GetString(this Controller controller)
{
return "iamanexample";
}
}
然后,您可以通过编写任何代码轻松地通过任何控制器对其进行访问
string exampleString = this.GetString();
答案 1 :(得分:1)
是的,这是继承的理想方案。创建一个新的控制器基类:
public abstract class ControllerBase : Controller
{
public string GetString()
{
return "iamanexample";
}
}
继承为:
public class AuthenticationController : ControllerBase
{}