我想知道在包含数据库中的值而不重复任何代码的表单上拥有选择列表的最佳方法是什么。
我认为有意义的是将这些数据加载到控制器中并将其传递给视图模型,这样我就可以使用SelectListFor<>
或其他任何内容以生成列表。然而,这意味着我必须在 GET 和 POST 方法中复制所有列表加载。我看到的另一种方法是将数据库上下文传递到视图模型构造函数中并让它加载 list ,但这又带来了两个问题:
1)视图模型应该了解数据库上下文吗?
2)然后,我无法通过接受视图模型类型作为方法参数来使用模型绑定,因为它没有无参数构造函数(如果我创建一个无参数构造函数,那么如果我想重新显示,它将不会有列表包含表单的视图)。
有一个更好的方法吗?这似乎是一个相当常见的情况,任何建议将不胜感激。
我们通常通过 ReferenceDataRepository 来实现查找,该存储库以与任何其他存储库交互相同的方式在控制器中使用。该存储库通常会收到大量对主要静态只读数据的调用,因此我们可以使用您选择的缓存方案(Session、AppFabric 等)的抽象来实现派生的 CachedReferenceDataRepository。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)