2015-01-05 6 views
2

Возможно передать данные модели одному контроллеру другому контроллеру?Как передать данные модели одному контроллеру другому контроллеру

Я хочу передать данные модели одному контроллеру ro другого контроллера.

[HttpPost] 
     public ActionResult Personal(StudentModel student) 
     {       
       return RedirectToAction("nextStep", new { model = student});   
     } 

     public ActionResult nextStep(StudentModel model) 
     {   
      return View(model); 
     } 

в nextStep контрольный образец модели - значение null. Как это сделать? Мне нужно данные StudentModel в nextStep conreoller.

+0

Возможный дубликат [Передача данных между различными методами действий контроллера] (http://stackoverflow.com/questions/15385442/passing-data-between-different-controller-action-methods) –

ответ

6

Вы используете RedirectToAction. Он выдаст запрос GET. Есть два способа передать вашу модель здесь.

1. TempData

Вы должны сохраняться модель в TempData и сделать RedirectToAction. Однако ограничение будет доступно только для немедленного запроса. В вашем случае это не проблема. Вы можете сделать это с TempData

public ActionResult Personal(StudentModel student) 
{       
     TempData["student"] = student; 
     return RedirectToAction("nextStep", "ControllerName");   
} 

public ActionResult nextStep() 
{  
     StudentModel model= (StudentModel) TempData["student"]; 
     return View(model); 
} 

2. Передача в строке запроса

Как запрос GET, мы можем передавать данные в виде строки запроса с названием модели недвижимости. Связывание модели MVC разрешит строку запроса и преобразует ее как модель.

return RedirectToAction("nextStep", new { Name = model.Name, Age=model.Age); 

Также обратите внимание передавая данные здравые в строке запроса не рекомендуется.

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