我試圖在一個控制器中將數據從一個Action傳遞到另一個,但似乎這不起作用。我得到空。如何在控制器之間傳遞值?在動作之間傳遞數據
措施1
ViewData["ProductId"] = productId;
措施2
var productId = ViewData["ProductId"];//Always Null
我試圖在一個控制器中將數據從一個Action傳遞到另一個,但似乎這不起作用。我得到空。如何在控制器之間傳遞值?在動作之間傳遞數據
措施1
ViewData["ProductId"] = productId;
措施2
var productId = ViewData["ProductId"];//Always Null
你可以使用this.Session["ProductId"]
,但這種方法是不正確普遍,導致難以維護的代碼是不可擴展的。更可能的是,您應該將此視圖傳遞給您的視圖以呈現爲輸入字段(用於表單)或用於生成URL(用於鏈接)。
您還可以使用TempData
共享數據,直到下一個請求。
你是怎麼稱呼第一個動作中的第二個動作的?如果你打電話
RedircectToAction("Acion2").
那麼你可以像這樣通過action屬性傳遞參數:
RedirectToAction("Action2", new { productID= ViewBag.ProductId});
public ActionResult Action2(Guid productID)
{
}
是的,雖然TempData的通常用於近實時的用戶通信信息,如「發生錯誤」,或'保存成功'。使用這種方法傳遞模型ID可以降低可伸縮性問題,但不是可維護性問題。 – PinnyM 2012-04-03 13:59:22