Razor视图中的DI接口和派生类用法(非静态类)



我正在构建一个MVC应用程序,我有一个接口和一个实现接口的派生类,DI将两者链接在一起。派生类中的功能在控制器或模型类代码中调用它的所有代码中都能很好地工作,但现在,我发现我正在创建的视图的一个实例也会从使用这个派生类中受益。但后来我发现这是不可能的,因为派生类是非静态的,在视图中使用它需要它是静态的。因此,我试图使接口和派生类成为静态的,但后来发现接口不能有静态指定,并且链接到接口的派生类也不能使用静态,因为接口没有使用静态。我甚至试图创建一个剃刀辅助对象,但即使在那时,由于我创建的剃刀辅助对象是静态的(据我所知,它应该是静态的才能正常工作),那里的派生类用法也存在相同的静态/非静态问题。我试着在stackoverflow找到其他可以为我指明正确方向的问题,但据我所见,我运气不佳,所以我在这里问这个问题,希望有人能帮我,我将不胜感激。如果我需要更多的信息来帮助你,比如我的一些代码,请询问。

您可以使用inject关键字,但只能与aspnet mvc 6/core一起使用。请参阅AspNet核心文档。

@inject:@inject <type> <variable_name>的语法

在cshtml文件的顶部,添加:

@inject StatisticsService StatsService

否则,您应该通过模型将接口的结果从控制器发送到视图。

最新更新