Asp.net mvc ASP.NET MVC的ActionResult如何实现命令模式

Asp.net mvc ASP.NET MVC的ActionResult如何实现命令模式,asp.net-mvc,design-patterns,Asp.net Mvc,Design Patterns,请参阅“Pro ASP.NET MVC 2框架”,ActionResult是命令模式的实现。我想知道这个模式是如何在这里实现的?你能给我点光吗 谢谢。操作方法返回一个实例,该实例包含框架下一步需要执行的命令。这提供了一种将框架/管道代码的执行延迟到action方法完成之后的方法,而不是从action方法内部执行 此命令由抽象类表示,并具有由具体命令(如ViewResult和JsonResult)实现的方法: ActionResult根本不是命令模式的实现。控制器上的动作最接近命令,而动作结果通常

请参阅“Pro ASP.NET MVC 2框架”,ActionResult是命令模式的实现。我想知道这个模式是如何在这里实现的?你能给我点光吗


谢谢。

操作方法返回一个实例,该实例包含框架下一步需要执行的命令。这提供了一种将框架/管道代码的执行延迟到action方法完成之后的方法,而不是从action方法内部执行

此命令由抽象类表示,并具有由具体命令(如
ViewResult
JsonResult
)实现的方法:


ActionResult根本不是命令模式的实现。控制器上的动作最接近命令,而动作结果通常是对视图的更改。命令更新模型,ActionResults不更新模型

我使用ActionFilter在MVC中实现了命令模式,并将操作、控制器名称和参数存储在历史记录中(例如:列表)。一个控制器实现了撤销和重做,而所有其他控制器都遵循将所有操作都以Do_u和Undo_u作为前缀的约定。或者你可以通过一个额外的考试?撤消参数


MVC中有很多执行命令的方法,但ActionResult与此无关。

除了延迟执行之外,还有其他好处吗?@Ricky,延迟执行是其背后的主要思想:在面向对象编程中,命令模式是一种设计模式,其中一个对象用于表示和封装以后调用方法所需的所有信息。@Dimitrow:感谢您的引用什么?综上所述,这些究竟与命令模式有什么关系?ActionResult如何帮助我为以后的undo()或类似操作堆叠它们?