Asp.net-Mvc
在 ASP.NET MVC 中使用 Tempdata - 最佳實踐
我正在使用 ASP.NET MVC 3 來建構一個 Web 應用程序。
我想做的是在兩個控制器之間傳遞值,儘管有很多方法可以做到這一點,我對此特別感興趣
TempData。public ActionResult Action1() { string someMessage; Test obj = SomeOperation(); if(obj.Valid) { someMessage = obj.UserName; } else { someMessage = obj.ModeratorName; } TempData["message"] = someMessage; return RedirectToAction("Index"); } public ActionResult Index() { ViewBag.Message = TempData["message"] return View(); }那麼
TempDatahere的使用正確嗎?我的意思是在最佳程式實踐下,這是正確的使用方式TempData嗎?在什麼實時情況下應該
TempData使用?**注意:**我已經瀏覽了以下連結
- 何時在 ASP.Net MVC 中使用 TempData 與 Session
- <http://www.gregshackles.com/2010/07/asp-net-mvc-do-you-know-where-your-tempdata-is/>
謝謝
TempData是一個儲存桶,您可以在其中轉儲僅以下請求所需的數據。也就是說,在下一個請求完成後,您放入 TempData 的任何內容都會被丟棄。這對於一次性消息很有用,例如表單驗證錯誤。這裡需要注意的重要一點是,這適用於會話中的下一個請求,因此該請求可能發生在不同的瀏覽器視窗或選項卡中。回答您的具體問題:沒有正確的使用方法。這完全取決於可用性和便利性。如果它有效,有意義並且其他人相對容易理解它,那很好。在您的特定情況下,以這種方式傳遞參數很好,但奇怪的是您需要這樣做(程式碼氣味?)。我寧願在資源(如果它是資源)或數據庫(如果它是持久值)中保留這樣的值。從您的使用情況來看,它似乎是一種資源,因為您將它用於頁面標題。
希望這可以幫助。