2012-06-09 5 views
4

Как бы вы передали модель из действия (GetDate) другому (процессу) с помощью метода RedirectAction?передать данные от действия к другому действию

Вот исходный код:

[HttpPost] 
public ActionResult GetDate(FormCollection values, DateParameter newDateParameter) 
{ 
    if (ModelState.IsValid) 
    { 
return RedirectToAction("ProcessP"); 
    } 
    else 
    { 
return View(newDateParameter); 
    } 
} 


public ActionResult ProcessP() 
{ 
    //Access the model from GetDate here?? 
    var model = (from p in _db.blah 
orderby p.CreateDate descending 
select p).Take(10); 

    return View(model); 
} 

ответ

7

Если вам нужно передать данные от одного действия к другому один вариант заключается в использовании TempData. Например, в GetDate вы можете добавить данные на сеанс следующим образом:

TempData["Key"] = YourData 

А затем выполните перенаправление. В ProcessP вы можете получить доступ к данным, используя ключ, который вы ранее использовали:

var whatever = TempData["Key"]; 

Для достойного чтения, я рекомендовал бы читать через эту тему: ASP.NET MVC - TempData - Good or bad practice

+0

ок; Я прочитаю его. Итак, может ли TempData иметь модель? или это похоже на ViewData, где она может содержать только пару значений? Благодаря! – scv

+0

yes tempdata может содержать вашу модель или любой объект, который вы хотите разместить внутри. – Jesse

+0

Прохладный и еще раз спасибо .. – scv

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