2012-06-09 57 views
4

如何通過RedirectAction方法將模型從(GetDate)動作傳遞給另一個(ProcessP)動作?將數據從Action傳遞到另一個Action

這裏的源代碼:

[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

是的tempdata可以容納你的模型,或者你喜歡放置在其中的任何物體。 – Jesse

+0

很酷,再次感謝.. – scv

相關問題