在ASP.NET MVC控制器之间共享代码

时间:2009-11-02 11:53:49

标签: c# asp.net-mvc

我在这里有一些控制器,包含我可以在其他控制器中使用的方法。

我考虑将一些常用功能移出到基本控制器,然后这些功能可以继承。这个问题是我在多个基本控件中需要的方法,我无法访问。 (因为我们不能从多个基本控制器继承。)

我的另一个想法是将常用功能移出到Controller文件夹之外的各自的类中。

你会做什么?在ASP.NET MVC中有一种很好的方式来共享这样的代码,我还不知道吗?

3 个答案:

答案 0 :(得分:14)

关于面向对象编程有一个经验法则,你应该支持组合优于继承,它非常适合这种情况。

我会创建一个或多个封装相关方法的服务,然后从控制器中使用这些服务。

对于额外的点,从相关服务中提取接口,并将接口注入控制器以最大限度地分离关注点。

答案 1 :(得分:4)

我会考虑帮助类或其他东西。根据您所描述的功能帮助控制器/

答案 2 :(得分:1)

选择似乎是基本控制器或辅助类。您可以控制控制器创建并将帮助程序注入任何需要它的控制器。