gpt4 book ai didi

asp.net-mvc - 您如何使用 IoC、DI 和 MVC 在 View 模型上连接列表/集合?

转载 作者:行者123 更新时间:2023-12-04 06:35:25 24 4
gpt4 key购买 nike

我正在处理一个 MVC 项目,试图实现 IoC 和 DI。这两个对我来说都是相当新的,所以如果我完全走错了路,或者我的问题措辞不明确,我提前道歉。

假设我有一个需要显示地址表单的 View ,其中一个元素是状态的下拉列表。 (我意识到不可能在其他事物的上下文之外使用地址,但为了示例的简单性,假设这里是这种情况。)

假设这是我的 View 模型:

public class AddressList {
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public List<string> States { get; set; }
public string Zip { get; set; }
}

填写国家名单是谁的责任?

Controller 应该这样做吗,已经注入(inject)了一个服务来获取状态?如果是这样,我需要填充地址的每个 Controller 中是否都有相同的注入(inject)和填充逻辑?还是应该去别的地方?

这个 View 模型属于哪一层?如果此 View 模型非常特定于我的应用程序中的给定 View ,那么它不应该也保留在我的应用程序中,因此不用于传递到用于填充状态的服务吗?

我已经搜索了几个小时试图找到这样做的一个很好的例子,但发现的帮助很少。所以我想知道这是否是一个错误的方法。如果是这样,我当然愿意以不同的方式去做。

我目前正在使用 ASP.NET MVC2、Unity 和 EF4,所以任何使用这些的示例都会很棒。然而,任何例子都可能引导我朝着正确的方向前进。

提前致谢。

编辑:对不起,但我想我可能只是偶然发现了我正在寻找的东西——模型绑定(bind):

http://www.dominicpettifer.co.uk/Blog/39/dependency-injection-in-asp-net-mvc-2---part-2--modelbinders-viewmodels

这是我需要的吗?这是否适用于 Unity(我看到这里的示例使用 CaSTLe Windsor)?

最佳答案

与其他应用程序边界数据结构一样,ViewModel 最好建模为具有一些行为的数据结构。 控制者的责任加载数据并填充 ViewModel .

因此,您应该 将必要的服务注入(inject) Controller 并使用这些服务来填充 ViewModel。

关于asp.net-mvc - 您如何使用 IoC、DI 和 MVC 在 View 模型上连接列表/集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4941618/

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