Как ActionResult ASP.NET MVC реализует шаблон команд - PullRequest
6 голосов
/ 24 марта 2011

См. «Pro ASP.NET MVC 2 Framework», ActionResult является реализацией шаблона команды .Я хотел бы знать, как шаблон реализован здесь?Не могли бы вы прислать мне немного света?

Спасибо.

Ответы [ 2 ]

11 голосов
/ 24 марта 2011

Метод действия возвращает экземпляр, который воплощает команду, которую платформа должна выполнить затем.Это позволяет задерживать выполнение кода платформы / конвейера до завершения метода действия, а не из метода действия.

Эта команда представлена ​​абстрактным классом ActionResult иобладает методом ExecuteResult , который реализуется конкретными командами, такими как ViewResult и JsonResult:

enter image description here

1 голос
/ 14 марта 2012

ActionResult вообще не является реализацией шаблона команды. Действие на контроллере является ближайшим к команде, а ActionResult, как правило, представляет собой изменение представления. Команда обновляет модели, ActionResults не обновляет модели.

Я реализовал шаблон команды в MVC, используя ActionFilter и сохраняя действие, имя контроллера и параметры в истории (например, список <>). Один контроллер реализовал Undo и Redo, в то время как все другие контроллеры следовали соглашению о том, что все действия имеют префикс Do_ и Undo_. В качестве альтернативы вы могли бы пройти дополнительный бул? отменяемый параметр.

Есть много способов выполнить Command в MVC, но ActionResult не имеет к этому никакого отношения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...