我对MVC游戏来说有点晚了,坦率地说那里有太多的信息,几乎不可能使用"对"关键词甚至可以接近答案。
我有一个从数据库中获取codes
的函数,并将它们显示在自动完成列表中。我想在控制器之间共享此GetCodes
方法,而这些codes
用于其他表单。
最适合MVC
的做法是什么?
使用此函数创建基类是否更好,或者创建Web API控制器以共享这些类型的方法更好?
[编辑]
为了澄清,提供自动完成的codes
我就像一个大州或省的城市列表。它是一个静态列表,只有在联邦层面发生变化时才由政府更新。
我只是不想剪切/粘贴执行搜索的功能,我宁愿写一些可重复使用的功能。现在,函数GetCodes
存在于一个Controller上,我从该站点的其他部分调用该控制器Action方法。我不喜欢这个,我正在寻找一些关于如何使用ASP.NET的其他部分以更好的方式实现这一点的建议。
谢谢
答案 0 :(得分:0)
使用视图模型 - 创建一个视图模型(或视图模型基类),可以加载codes
或提供加载codes
的方法,然后使用此视图模型作为更大的属性查看模型(或从视图模型继承)。
答案 1 :(得分:0)
任何时候你说“什么是最好的方式......”答案总是“这取决于很多因素”。
我们对您的设计,要求,实施或其他细节并不十分了解。但是,有一些事情需要牢记。
如果您不需要任何类型的分布式体系结构,则没有理由创建WebApi控制器。
听起来您的数据只是模型的一部分,因此您可以使用任何标准模式进行模型数据的数据访问。任何教程,如MVC音乐商店或Nerd Dinner都会告诉你如何做到这一点。
仅仅因为控制器之间共享数据并不会使它变得特别..模型的重点在于任何控制器都可以使用数据。