Razor View中的DI接口和派生类使用(非静态类)

时间:2017-01-07 22:19:43

标签: c# razor interface static

我正在构建一个MVC应用程序,我有一个接口,一个实现接口的派生类,以及将两者连接在一起的DI。派生类中的功能在控制器或模型类代码中调用它的所有代码中都能很好地工作,但是现在,我发现了一个我正在创建的View的实例,它也将从使用这个派生类中受益。但后来我发现这是不可能的,因为派生类是非静态的,并且在View中使用它需要它是静态的。所以,我试图使接口和派生类静态,但后来发现接口不能有静态名称,并且链接到接口的派生类也不能使用静态,因为接口不使用静态。我甚至试图创建一个剃刀助手,但即便如此,因为我创建的剃刀助手是静态的(从我认为我知道,它应该是静态的才能正常工作),派生类的用法也有相同的静态/非静态问题。我尝试在stackoverflow上找到其他问题可以指出我正确的方向,但从我所看到的,我没有运气,所以我在这里问这个问题,希望有人可以帮助我,我将不胜感激。如果我需要更多信息来帮助你,比如我的一些代码,请问。

1 个答案:

答案 0 :(得分:1)

您可以使用注入关键字,但只能使用aspnet mvc 6 / core。 请参阅AspNet core docs

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

在cshtml文件的顶部,添加:

@inject StatisticsService StatsService

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