MVC5 中的继承
Inheritance in MVC5
我正在使用 MVC5,并且已经获得了 CaptchaMvc nuget 包。
我想在我的控制器中使用这个包中的函数 IsCaptchaValid
。
这是函数的签名
public static bool IsCaptchaValid(this ControllerBase controllerBase, string errorText, params ParameterModel[] parameters);
从这里开始,当我转到 ControllerBase
的定义时,我看到这个 class 是 System.Web.Mvc
、v5.2.3.0.[=22= 的一部分]
当我转到我的控制器时,我看到它继承自 BaseController
(我的 class),而这个 class 继承自 AsyncController
class,这是抽象的,也是 System.Web.Mvc
命名空间的一部分。当我去定义这个 class 时,我看到它继承自 System.Web.Mvc.Controller
,而这个 class 继承自 System.Web.Mvc.ControllerBase
.
我的问题是,我怎么不能在我的控制器中使用函数 IsCaptchaValid
?
是因为abstract AsyncController
,如果是,abstract class为什么要隐藏函数?
有没有一种方法可以让我在不创建控制器继承层次结构的情况下使用此功能?
更新 1:
正如 Richard Deeming 提到的
我正在使用此功能工作所需的 CaptchaMvc 命名空间,但 VS 似乎没有识别出我安装了它,即使我可以清楚地看到我在该项目的 Nuget 包管理器中安装了它。
出于某种原因,我只需要重新启动 Visual Studio...
我正在使用 MVC5,并且已经获得了 CaptchaMvc nuget 包。
我想在我的控制器中使用这个包中的函数 IsCaptchaValid
。
这是函数的签名
public static bool IsCaptchaValid(this ControllerBase controllerBase, string errorText, params ParameterModel[] parameters);
从这里开始,当我转到 ControllerBase
的定义时,我看到这个 class 是 System.Web.Mvc
、v5.2.3.0.[=22= 的一部分]
当我转到我的控制器时,我看到它继承自 BaseController
(我的 class),而这个 class 继承自 AsyncController
class,这是抽象的,也是 System.Web.Mvc
命名空间的一部分。当我去定义这个 class 时,我看到它继承自 System.Web.Mvc.Controller
,而这个 class 继承自 System.Web.Mvc.ControllerBase
.
我的问题是,我怎么不能在我的控制器中使用函数 IsCaptchaValid
?
是因为abstract AsyncController
,如果是,abstract class为什么要隐藏函数?
有没有一种方法可以让我在不创建控制器继承层次结构的情况下使用此功能?
更新 1:
正如 Richard Deeming 提到的
出于某种原因,我只需要重新启动 Visual Studio...