RedirectToAction вызывается дважды - PullRequest
2 голосов
/ 10 декабря 2011

У меня есть контроллеры:

Controller A
{
   public ActionResult ExecuteSomeStuff()
   {
    ....use TempData
    returns a View("StuffMade", SomeModel);
   }
}

и

 Controller B
{
   public ActionResult DoStuff()
   {
         ...fill up TempData     


    returns RedirectToAction("ExecuteSomeStuff", "A");
   }
}

Проблема в том, что метод ExecuteSomeStuff на контроллере A выполняется дважды. Мне не нужно делать фактическое перенаправление, я просто хочу, чтобы результат (представление) из метода ExecuteSomeStuff был возвращен для метода DoStuff. Я не хочу иметь ссылку на контроллер A в контроллере B для непосредственного вызова метода.

Есть ли способ сделать это без физического перенаправления или новой ссылки на контроллер A в контроллере B ??

1 Ответ

0 голосов
/ 10 декабря 2011

Если я правильно вас понимаю, вместо RedirectToAction вы можете вернуть ExecuteSomeStuff View из контроллера B. Вам нужно будет установить Model для передачи в представление из контроллера B Таким образом, вам все еще может понадобиться сделать ссылку на методы, используемые в контроллере A.

Controller B:
 {

    public ActionResult DoStuff()
    {
    ...fill up TempData 
    //set the model then Return the View with the Model passed in
    return View("ExecuteSomeStuff","A",SomeModel);
    }

UPDATE

Это будет искать View с тем же именем, что и действие ExecuteSomeStuff без фактического ввода действия ExecuteSomeStuff . Если ваш вид имеет другое имя, вы можете явно указать вид, чтобы он выглядел так:

return View("../A/theCorrectView.aspx", model);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...