C# 在ASP.net MVC中,什么&x27;切换到另一个控制器然后返回到原始控制器的正确方法是什么?

C# 在ASP.net MVC中,什么&x27;切换到另一个控制器然后返回到原始控制器的正确方法是什么?,c#,asp.net,asp.net-mvc,web-applications,C#,Asp.net,Asp.net Mvc,Web Applications,(使用ASP.NET MVC,C#,对环境来说相当陌生) 我有一个控制器,在一张表中创建一行,比如一个人,然后另一个控制器在另一张表中创建另一行,创建与另一张表有一对多关系的东西,例如,包含许多人的课程 当我在我的web应用程序中创建一个新课程时,我希望能够链接到向课程中添加一个人,既可以是现有的人,也可以是新的人。因此,我将课程详细信息控制器链接到个人控制器。然后我想让它记住它是从哪里来的,这样我就可以回到课程页面,显示新添加的人 本着DRY的精神,我不想为在课程类中创建一个人创建一个单独的控

(使用ASP.NET MVC,C#,对环境来说相当陌生)

我有一个控制器,在一张表中创建一行,比如一个人,然后另一个控制器在另一张表中创建另一行,创建与另一张表有一对多关系的东西,例如,包含许多人的课程

当我在我的web应用程序中创建一个新课程时,我希望能够链接到向课程中添加一个人,既可以是现有的人,也可以是新的人。因此,我将课程详细信息控制器链接到个人控制器。然后我想让它记住它是从哪里来的,这样我就可以回到课程页面,显示新添加的人

本着DRY的精神,我不想为在课程类中创建一个人创建一个单独的控制器和视图。完成后,如何让人员控制员返回课程控制员?什么代表?在iOS中(我更习惯于这样做),您可以通过在视图中以模式加载,然后分配一个委托,然后调用委托(如果它存在)并取消该视图来实现这一点。这里有类似的东西吗


感谢您,本着DRY的真正精神,您不想将每个创建方法封装在各自的DAL中,然后根据需要直接从控制器调用它们吗?似乎您将数据访问和业务逻辑层嵌入到控制器中。我知道这在教程和简单应用程序中是一种流行的方法,但我相信它会导致长期问题(比如您现在遇到的问题)。我的建议是将您的业务逻辑移回一层,并为自己保存一个控制器重定向

编辑:


您可以在应用程序中比控制器更深的位置处理实体模型上的CRUD数据访问。事实上,许多人会认为这样做是正确的关注点分离。我的建议是构建一个数据访问层,该层修改从控制器中移除的实体对象。这样,您的数据访问不会使控制器膨胀,您可以从各种控制器调用多种类型的数据访问方法。

我不理解您的建议。数据访问由实体模型处理,因此可以在任何地方修改它们。你是说我应该在一个控制器中创建所有不同的CRUD视图等吗?
CourseController
应该负责创建、编辑和查看
课程
s,因此将
人员
添加到
课程
应该由
CourseController
负责。如果您想创建一个新的
人员
,那么您可以将他们分配到
课程
,这将是
人员控制器
的责任,在这种情况下,您可以将可选的
课程ID
传递给该方法,在视图中呈现其值,在回发时,获取该值并`返回重定向到操作(“编辑”)新的{ID=CourseID});