MVC3将数据从控制器传递到另一个控制器

时间:2011-12-02 23:20:37

标签: asp.net-mvc-3 viewdata viewbag

将少量数据从一个控制器传递到另一个控制器,我是否使用ViewBag? ViewData的?或会议......等......什么是正确的方法。

e.g。我的第一个[Controller1] / [Action:Register]生成用户ID,然后需要重定向到另一个控制器

  

返回RedirectToAction(“Create”,“Controller2”);

然后在Create(HttpPost)上,我将数据+加上userid存储到数据库,然后重定向到下一个控制器,它在HttpPost上以相同的方式运行,它将数据+加上userid存储到数据库。

我有点失落应该采取什么方法,如何以安全的方式/正确的方式传递用户ID?,请指教,谢谢

2 个答案:

答案 0 :(得分:2)

如果它不是私有的,只需使用重定向中的第三个参数将其传递到url: 新{id = whateverValue}

如果是私有数据,请使用TempData - 在下一个请求读取后将被删除(在请求结束时)

答案 1 :(得分:0)

我相信你可以利用路线值来实现这一目标。这是一个例子:

return RedirectToAction("Create", "Controller2", new { userId = myVar });

有关路线值的更多信息,请查看RouteValueDictionary http://msdn.microsoft.com/en-us/library/system.web.routing.routevaluedictionary.aspx