gpt4 book ai didi

asp.net-mvc - 使用 Unity.Mvc5 将服务注入(inject) MVC View

转载 作者:行者123 更新时间:2023-12-02 04:01:16 25 4
gpt4 key购买 nike

我刚刚开始使用 Unity 依赖注入(inject)。我已经弄清楚如何将它与 Controller 和模型一起使用。但是我不确定如何将它与 View 一起使用...

我想要做的是能够使用注册的服务从 View 中检索查找列表。

查看此网址 http://blog.simontimms.com/2015/06/09/getting-lookup-data-into-you-view/它展示了如何使用 MVC6 来做到这一点。它在 View 中使用@inject指令。然而我坚持使用 MVC5,它似乎没有这个指令。

有 MVC5 替代 @inject 吗?

我正在像这样注册我的服务和存储库......

Public Shared Sub RegisterComponents()
Dim container = New UnityContainer()

container.RegisterType(Of IMyService, MyService)()
container.RegisterType(Of IRepository(Of MyModel), MyRepository)()

DependencyResolver.SetResolver(New UnityDependencyResolver(container))
End Sub

我像这样访问 Controller 中的服务......

<Dependency>
Public Property MyModelService() As IMyService

我现在需要知道的是如何将服务注入(inject)到我的 razor View 中。

最佳答案

我找到了一个相对简洁的解决方案。

我只是创建自己的 View 基类来继承 WebViewPage(通用和非通用),然后将注入(inject)的服务属性放在那里。

Namespace MyNamespace
Public MustInherit Class MyWebViewPage
Inherits MyWebViewPage(Of Object)

End Class

Public MustInherit Class MyWebViewPage(Of T)
Inherits System.Web.Mvc.WebViewPage(Of T)

<Dependency>
Public Property MyModelService() As MyNamespace.IMyModelService

End Class

End Namespace

然后我将其添加到 Views/Web.config 中,就像这样......

<pages pageBaseType="MyNamespace.MyWebViewPage"/>

然后,所有服务属性和方法都会自动可供我的所有 View 使用。

关于asp.net-mvc - 使用 Unity.Mvc5 将服务注入(inject) MVC View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41895861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com