将数据从Action传递给另一个Action

时间:2012-06-09 00:42:56

标签: asp.net-mvc-3

如何通过Redirect Action方法将模型从(GetDate)操作传递到另一个(Process)操作?

这是源代码:

[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);
}

1 个答案:

答案 0 :(得分:7)

如果您需要将数据从一个操作传递到另一个操作,则一个选项是使用TempData。例如,在GetDate中,您可以按如下方式向会话添加数据:

TempData["Key"] = YourData

然后执行重定向。在ProcessP中,您可以使用之前使用的密钥访问数据:

var whatever = TempData["Key"];

为了得到体面的阅读,我建议您阅读以下帖子:ASP.NET MVC - TempData - Good or bad practice