在MVC控制器之间共享异步方法

时间:2015-01-15 00:55:59

标签: c# asp.net-mvc-4 asynchronous code-sharing

我对MVC游戏来说有点晚了,坦率地说那里有太多的信息,几乎不可能使用"对"关键词甚至可以接近答案。

我有一个从数据库中获取codes的函数,并将它们显示在自动完成列表中。我想在控制器之间共享此GetCodes方法,而这些codes用于其他表单。

最适合MVC的做法是什么?

使用此函数创建基类是否更好,或者创建Web API控制器以共享这些类型的方法更好?

[编辑] 为了澄清,提供自动完成的codes我就像一个大州或省的城市列表。它是一个静态列表,只有在联邦层面发生变化时才由政府更新。

我只是不想剪切/粘贴执行搜索的功能,我宁愿写一些可重复使用的功能。现在,函数GetCodes存在于一个Controller上,我从该站点的其他部分调用该控制器Action方法。我不喜欢这个,我正在寻找一些关于如何使用ASP.NET的其他部分以更好的方式实现这一点的建议。

谢谢

2 个答案:

答案 0 :(得分:0)

使用视图模型 - 创建一个视图模型(或视图模型基类),可以加载codes或提供加载codes的方法,然后使用此视图模型作为更大的属性查看模型(或从视图模型继承)。

答案 1 :(得分:0)

任何时候你说“什么是最好的方式......”答案总是“这取决于很多因素”。

我们对您的设计,要求,实施或其他细节并不十分了解。但是,有一些事情需要牢记。

如果您不需要任何类型的分布式体系结构,则没有理由创建WebApi控制器。

听起来您的数据只是模型的一部分,因此您可以使用任何标准模式进行模型数据的数据访问。任何教程,如MVC音乐商店或Nerd Dinner都会告诉你如何做到这一点。

仅仅因为控制器之间共享数据并不会使它变得特别..模型的重点在于任何控制器都可以使用数据。