【问题标题】:ASPNET MVC: Reusing Action SequencesASP NET MVC:使用动作序列
【发布时间】:2011-05-26 04:46:28
【问题描述】:

我正在构建一个站点,在该站点中,作为不同操作的一部分,我经常需要执行相同的步骤序列。简单来说,我的数据模型的一部分是分层的,我遍历层次结构来定位特定元素,之后我会做几件不同的事情之一(例如,向其中添加详细记录,编辑它)。

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

我想做的是将包括遍历树和选择节点的各种操作方法打包到“子例程”中,我可以从需要检索的各种控制器类中“调用”节点。但我想不出在 ASPNET MVC 结构中做到这一点的好方法。有什么建议吗?

附言here 提出了一种方法,但我有兴趣看看是否还有其他方法。

【问题讨论】:

    标签: asp.net-mvc reusability


    【解决方案1】:

    在没有看到任何代码的情况下,您所描述的“打包包括遍历树的各种操作方法”只是创建一个方法。换句话说,您不应该寻求调用包含遍历树的操作方法集,而是调用这些操作方法使用的方法。

    这意味着重构操作方法,以便在服务类中处理逻辑并创建一个包含您感兴趣的操作的方法。

    所以你的控制器看起来像这样:

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

    【讨论】:

      猜你喜欢
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 2020-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多