2009-07-29 2 views
0

**** ОБНОВЛЕНО ****ASP.NET MVC маршрутизации и InvokeActionMethod

У меня есть обычай ContentActionInvoker, который имеет некоторые сумасшедшие логики в нем.

В каком-то случае я хотел бы вызвать другое действие в другом контроллере и с некоторыми разными параметрами.

Как это можно сделать?

class ContentActionInvoker : ControllerActionInvoker 
{ 
     protected override ActionResult InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary<string, object> parameters) 
     { 
      .... 
     } 
} 

ответ

1

Зачем вам перенаправлять пользовательский опыт обратно через веб-сервер (заставляя браузер совершать обратную связь) для доступа к другому классу, который работает в том же AppDomain, что и код, который получил запрос от MvcHandler?

Если вы хотите, чтобы данные процесса в другом методе с разными параметрами, просто создайте экземпляр этого другого класса (или контроллера, который является просто еще одним классом ...), и либо верните ActionResult, сгенерированный методами THOSE, либо переформатируйте собственный ActionResult для запрошенного вида.

+0

Спасибо Джефф, вот что я хотел бы сделать, как я могу это сделать? можете ли вы ссылаться на какие-либо примеры кода? –

0

Не хотите использовать RedirectToAction("MyAction")?

+0

Dang, пропущенный менее чем за минуту. :) – griegs

+0

И я тоже на работе, будучи занят, отвечая на вопросы о SO, конечно;) – Kezzer

+0

хе-хе, приятно. У меня дома еще мало дел. – griegs

0

Вы пробовали RedirectToAction или я с базы?

Смежные вопросы