我正在建立一个网站,我经常需要经历相同的步骤序列作为不同操作的一部分。简单来说,我的数据模型的一部分是分层的,我走层次结构来定位一个特定的元素,然后我做几个不同的事情之一(例如,添加一个细节记录,编辑它)。
目前,我通过我的数据层检索一个对象,该数据层代表层次结构中的一个节点,并且包含有关其子节点的详细信息。我在我网站的几个不同区域使用相同的描述符类。
我希望能够做的是打包包含遍历树的各种动作方法,并选择一个节点到“子程序”中,我可以从需要检索的各种控制器类中“调用”该子程序。节点。但我想不出在ASPNET MVC结构中做到这一点的好方法。建议?
P.S。提出了一种方法here,但我很想知道是否有其他方法。
答案 0 :(得分:0)
在没有看到任何代码的情况下,您所描述的“打包构成遍历树的各种操作方法”只是创建一个方法。换句话说,您不应该调用包含遍历树的操作方法集,而是调用这些操作方法使用的方法。
重构动作方法意味着什么,以便在服务类中处理逻辑并创建一个由您感兴趣的动作组成的方法。
所以你的控制器看起来像这样:
public class ControllerA {
public ActionResult DoSomething() {
serviceA.DoSomething();
}
}
public class ControllerB {
public ActionResult DoSomethingElse() {
serviceB.DoSomethingElse();
}
}
您将使用所需的逻辑定义这些服务,现在可以创建一个调用所需方法的SharedService类。
public class SharedService {
public void DoBoth() {
serviceA.DoSomething();
serviceB.DoSomethingElse();
}
}