2012-04-03 57 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) 
{ 
}