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

时间:2014-11-17 18:26:28

标签: c# asp.net asp.net-mvc web-applications

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

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

当我在我的网络应用程序中创建新课程时,我希望能够链接到向课程添加人员,无论是现有人还是新人。所以我从课程细节控制器链接到人员控制器。然后我想让它记住它来自哪里,这样我就可以回到课程页面并显示新添加的人。

根据DRY的精神,我不想创建一个单独的控制器并查看在课程类中创建一个人。什么是让人控制器在完成后返回课程控制器的正确方法?某种代表?在iOS(我更习惯)中,您可以通过以模态方式加载视图然后分配委托,然后调用委托(如果存在)并解除视图来实现此目的。这里有类似的东西吗?

由于

1 个答案:

答案 0 :(得分:2)

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

编辑:

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