【问题标题】:pass data from Action To Another Action将数据从动作传递到另一个动作
【发布时间】:2012-06-09 08:48:57
【问题描述】:

如何通过 RedirectAction 方法将模型从 (GetDate) 动作传递到另一个 (ProcessP) 动作?

这里是源代码:

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

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

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

    TempData["Key"] = YourData
    

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

    var whatever = TempData["Key"];
    

    为了获得体面的阅读,我建议阅读此主题:ASP.NET MVC - TempData - Good or bad practice

    【讨论】:

    • 好的;我会读的。那么,TempData 可以持有模型吗?还是像 ViewData 一样只能保存值对?谢谢!
    • 是的 tempdata 可以保存您的模型,或者您想要放置的任何对象。
    • 请记住,您必须将其转换为 TempData 中的类型。如 var model = (MyViewModel)TempData["Key"];
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    相关资源
    最近更新 更多