2012-04-03 81 views
0

我试图在一个控制器中将数据从一个Action传递到另一个,但似乎这不起作用。我得到空。如何在控制器之间传递值?在动作之间传递数据

措施1

ViewData["ProductId"] = productId; 

措施2

var productId = ViewData["ProductId"];//Always Null 

回答

1

你可以使用this.Session["ProductId"],但这种方法是不正确普遍,导致难以维护的代码是不可扩展的。更可能的是,您应该将此视图传递给您的视图以呈现为输入字段(用于表单)或用于生成URL(用于链接)。

1

您还可以使用TempData共享数据,直到下一个请求。

+1

是的,虽然TempData的通常用于近实时的用户通信信息,如“发生错误”,或'保存成功'。使用这种方法传递模型ID可以降低可伸缩性问题,但不是可维护性问题。 – PinnyM 2012-04-03 13:59:22

0

你是怎么称呼第一个动作中的第二个动作的?如果你打电话

RedircectToAction("Acion2"). 

那么你可以像这样通过action属性传递参数:

RedirectToAction("Action2", new { productID= ViewBag.ProductId}); 

public ActionResult Action2(Guid productID) 
{ 
}