ASPNET MVC:重用动作序列

时间:2011-05-26 04:46:29

标签: asp.net-mvc reusability

我正在建立一个网站,我经常需要经历相同的步骤序列作为不同操作的一部分。简单来说,我的数据模型的一部分是分层的,我走层次结构来定位一个特定的元素,然后我做几个不同的事情之一(例如,添加一个细节记录,编辑它)。

目前,我通过我的数据层检索一个对象,该数据层代表层次结构中的一个节点,并且包含有关其子节点的详细信息。我在我网站的几个不同区域使用相同的描述符类。

我希望能够做的是打包包含遍历树的各种动作方法,并选择一个节点到“子程序”中,我可以从需要检索的各种控制器类中“调用”该子程序。节点。但我想不出在ASPNET MVC结构中做到这一点的好方法。建议?

P.S。提出了一种方法here,但我很想知道是否有其他方法。

1 个答案:

答案 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();
    }
}