Asp.net
如何將數據保存在 MVC 控制器的記憶體中?
請看下面的動作。當使用者第一次導航時,創建一個對象,然後當他在頁面中導航時,再次訪問 Action,但通過 Ajax 請求和數據消散器(工作表 = null)。
private static List<Worksheet> worksheets; public ActionResult DoTest() { if (Request.IsAjaxRequest()) { return PartialView("_Problems", worksheets[1]); } // first time worksheets = new List<Worksheet>() { new Worksheet("Hoja 1", ...), new Worksheet("Hoja 2", ...) }; return View(worksheets[0]); }我的第一個解決方案是將變數工作表設置為靜態,但我認為這不是一個好習慣。我做得很好還是還有其他 tweeks?
遠離靜態變數,尤其是在數據依賴於使用者的情況下。您可以利用ASP.NET Session對象。
這可以通過將工作表欄位更改為將其值儲存在 Session 對像中的屬性來輕鬆完成。這樣,它將在後續呼叫中可用。例子:
private List<Worksheet> worksheets { get{ return Session["worksheets"] as List<Worksheet>;} set{ Session["worksheets"] = value; } } public ActionResult DoTest() { if (Request.IsAjaxRequest()) { return PartialView("_Problems", worksheets[1]); } // first time worksheets = new List<Worksheet>() { new Worksheet("Hoja 1", ...), new Worksheet("Hoja 2", ...) }; return View(worksheets[0]); }