Вызов другого метода поста контроллера - PullRequest
0 голосов
/ 12 апреля 2011

Я использую ASP.NET MVC 3 для своего сайта.

Я создал частичное представление с кнопками «Назад», «Далее» и «Сохранить».Я называю это частичным представлением на моей главной странице.

Мое требование заключается в том, что на любом View я должен иметь возможность вызывать разные Save методы на разных контроллерах, передавая соответствующие данные Model действиям контроллера.1010 * Пример

  • У меня есть 4 шага ввода данных, у меня разные контроллеры для каждого шага.
  • Если я на шаге 1 и я нажимаю Сохранить форму Значения должны перейти к методу действия Step1Controller,
  • Если я на шаге 2, то сообщение должно вызвать Step2Controller

Примерно так:

public ActionResult Save(GenericModel model)
{
    //use reflection to find out model type

    //call appropriate controller action with model

    return RedirectToAction("Create", new { Controller = "Conference", Action = "Create" });
}

Этот метод сохранения будет вызываться для кнопки Save на Master page.Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 18 августа 2012

Я бы создал приватный метод в контроллере и вызывал бы каждую часть первых шагов.

private bool Save(GenericModel model)
{
   ......
}

[HttpPost]
public bool SaveStep1(GenericModel model)
{
      this.Save(model);
}

[HttpPost]
public bool SaveStep2(GenericModel model)
{
      this.Save(model);
}
0 голосов
/ 12 апреля 2011

Есть ли формы на отдельных действиях на контроллерах?

Если это так, просто установите действие формы на каждой странице так, чтобы оно указывало на соответствующий контроллер. Таким образом, форма 1 является

<form method="post" action="/step1controller/action">

Форма 2:

<form method="post" action="/step2controller/action">

Решает ли это вашу проблему?

...