Как передавать данные между контроллерами в MVC 3? - PullRequest
0 голосов
/ 27 октября 2011

У меня есть 2 отдельных листа контроллера, а не только методы действий.

МОЙ Первый Контроллер:

namespace TestLokal.Controllers
{
    public class BOUNCEController : Controller
    {
        BOUNCEDataDataContext db = new BOUNCEDataDataContext();

        //
        // GET: /BOUNCE/
        [Authorize]
        public ActionResult Index()
        {
            ViewData["Bouncers"] = new SelectList( db.Bouncers.Distinct(), "bouncer_id", "bouncer_name");
            return View();
        }
    }
}

МОЙ второй контроллер:

namespace TestLokal.Controllers
{
    public class DopplerController : Controller
    {
        //
        // GET: /Doppler/
        [Authorize]
        public ActionResult Index()
        {
            elementmodel dop = new elementmodel();
            ViewData["Dopplers"] = new SelectList( dop.BouncerList.Distinct(), "bouncer_id", "bouncer_name");
            return View();
        }
    }
}

Я хочу передавать данные из первой в секунду, используя эту модель:

МОЯ модель:

public class elementmodel
{
    public IEnumerable<Bouncers> BouncerList { get; set; }
}

Как мне этого добиться?

Ответы [ 3 ]

2 голосов
/ 27 октября 2011

Для этого вы можете использовать TempData.

См. http://msdn.microsoft.com/en-us/library/dd394711(v=vs.90).aspx (передача данных между методами действия)

2 голосов
/ 27 октября 2011

Прежде всего ... вы уверены, что вам нужны два отдельных контроллера с одинаковыми данными?По моему скромному мнению, каждый контроллер должен отвечать за работу со своей группой моделей.Если вам нужно иметь одинаковые данные на обоих контроллерах, может, вам стоит создать какой-то базовый класс?

public class MyBaseController : Controller 
{   
    //shared fields & methods for example datacontext
}

public class DopplerController : MyBaseController
{
}

public class BounceController : MyBaseController
{
}

, но если я ошибаюсь, и одному из ваших контроллеров просто нужны результаты работы с другого контроллера, вы можетеИспользуй Coockies, Session.

0 голосов
/ 27 октября 2011

2 вещи приходят на ум сразу.

  1. Вы можете сохранить список вышибал в представлении в виде объекта JSON, который отправляется на другой контроллер.
  2. Вы можетеиспользуйте TempData для хранения его между запросами.Например: http://msdn.microsoft.com/en-us/library/dd394711.aspx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...