Выполнить действие без перенаправления - PullRequest
1 голос
/ 25 мая 2009

У меня маленький вопрос к сообществу. Позволяет ли ASP.NET MVC выполнять действие другого контроллера без метода RedirectToAction() и без создания экземпляра этого контроллера?

Ответы [ 3 ]

2 голосов
/ 25 мая 2009

Это невозможно. Для выполнения метода экземпляра должен быть экземпляр, в котором нужно выполнить. Методы действия - это просто методы, как и все другие методы, поэтому вам всегда нужен экземпляр для вызова метода.

0 голосов
/ 12 июля 2016

Вы можете позвонить через технику Reflection, но это Не рекомендуется . Коротко, потому что это не в контексте запроса / ответа / контроллера.
Лично я предпочитаю иметь internal static method(bla bla){...} и звонить туда, куда захочу.
Но если вы бросите

без создания экземпляра этого контроллера

Clause, тогда вы можете использовать эту методологию . Но, как это объясняет, это Не рекомендуется слишком . резюмируется следующее:

var controller = new FooController();
controller.ControllerContext = new ControllerContext(this.ControllerContext.RequestContext, controller);
var jsonResult = controller.BlaMethod(someInputParams);
0 голосов
/ 25 мая 2009

Вы имеете в виду, что хотите иметь представление, которое ничего не возвращает. Нет просмотра. Нет надда?

Если это так, вы можете вернуть EmptyResult ViewResult class ...

НТН.

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