ASP.NET从一个控制器使用另一个控制器

ASP.NET从一个控制器使用另一个控制器,asp.net,asp.net-mvc,model-view-controller,controller,Asp.net,Asp.net Mvc,Model View Controller,Controller,我正在创建一个mvc项目,为了简化,我有两个实体:电影和电影类型 我想显示一个类型列表以及每个类型包含的电影数量 现在我对设计有一个问题。我不确定谁对此负责。我通过在MovieController中创建一个方法来解决这个问题,该方法按流派id返回电影数量,并在MoviesGenreController上创建一个方法来选择所有流派,并使用MovieController(通过实例化一个对象)方法来获取它们的计数 对我来说,这似乎不是一个好的设计。哪个控制员对此负责?我是否需要为这个逻辑创建一个额外的

我正在创建一个mvc项目,为了简化,我有两个实体:电影和电影类型

我想显示一个类型列表以及每个类型包含的电影数量

现在我对设计有一个问题。我不确定谁对此负责。我通过在MovieController中创建一个方法来解决这个问题,该方法按流派id返回电影数量,并在MoviesGenreController上创建一个方法来选择所有流派,并使用MovieController(通过实例化一个对象)方法来获取它们的计数


对我来说,这似乎不是一个好的设计。哪个控制员对此负责?我是否需要为这个逻辑创建一个额外的控制器?谢谢。

您需要一个数据层项目,该项目将管理每个控制器对底层数据库的访问。 我建议采用以下设计:

  • 创建连接到数据库的库项目(DataLayer)项目。 暴露的潜在方法:
  • 列出getAllGenes()
  • 列出GetMoviesByGene()
您可以将数据层作为服务注入,也可以只在每个控制器中分配一个新对象。这更像是个人喜好。。。DI方法更灵活,更符合DotNetCore体系结构


MovieController和MovieGenreController都应该使用数据层中的方法。

展示一些代码来更好地解释问题。也就是说,创建可以注入控制器以提供所需功能的特定服务。