2009-11-10 101 views
2

該解決方案整天躲過我。我從我的數據庫中獲取數據,但我想將數據保存在某處,而不是每個頁面都要保存數據庫。我該怎麼做呢?在MVC中保存數據

我從控制器檢索數據...

public ActionResult Inquiry(string Num, DateTime Date) 
{ ... 
    Bill myBill = new Bill(Num, Date, myConnections);  
    //This is where I am trying to store my data...  
    return View("Inquiry", myBill); 
} 

然後我查詢頁...

public ActionResult Summary(string Num, DateTime Date) 
{ ... 
    Bill myBill = new Bill(Num, Date, myConnections);  
    //... Data get retrieved here :(  
    return View("Summary", myBill); 
} 

它是足夠的數據來從會話存儲目光移開。是否可以保存到Model forlder中,並在aspx頁面上使用繼承?

我在編程世界嫩芽,更糟糕的.NET MVC

我應該能夠找出哪裏從那裏去。有任何想法嗎?

+0

你試圖保存什麼數據,你試圖通過保存以及你到目前爲止嘗試完成什麼? – 2009-11-10 20:42:24

+0

約需要存儲20個左右的fielsd。我很害怕使用會話,這是我習慣的新手。我正在學習[Serializable]運算符。我在模型中有一個[Serializable]驗證,並試圖保存這種方式。我完全在這個黑暗中... – MrM 2009-11-10 20:46:39

+0

你爲什麼不想從數據庫中得到它?根據我的經驗,將它存儲在兩個地方會增加更多的複雜性。另一方面,如果您只是在尋找更快的頁面渲染,爲什麼不使用ASP.NET MVC中內置的緩存工具來緩存輸出呢? – 2009-11-10 20:53:55

回答

2

假設我正確理解你的問題:

你可以緩存項目。將唯一鍵分配給緩存對象(Cache [「uniquekey」]),然後將該唯一鍵傳遞給其他操作。

讓您的操作從緩存中查找該對象並將其作爲模型發送。

這裏是從羅拉4名專家的article about caching,而here is an official ASP.NET learning video約緩存。

注意:請確保您在緩存對象上指定了到期日期。

+0

或緩存應用程序塊更多的控制:http://msdn.microsoft.com/en-us/library/ dd203226.aspx – 2009-11-10 21:03:48

0

如果這些是在同一個控制器上的兩個動作,並且基本上是在提交時將模型發回控制器(這只是您可能在做什麼的猜測),那麼您可以使用表單值集合和的UpdateModel方法,甚至可以使用這樣的強類型的動作(ISH):

public ActionResult Inquiry(string Num, DateTime Date) 
{ ... 
    Bill myBill = new Bill(Num, Date, myConnections);  
    //This is where I am trying to store my data...  
    return View("Inquiry", myBill); 
} 

public ActionResult Summary(Bill bill) 
{  
    //... do stuff 
    return View("Summary", bill); 
} 

這種方式,你都可以從天然來源的信息;即將到來的賬單。你可以在這個過程中進行處理,保存它,改變它,把它扔到另一個模型中,然後把它放回視圖中,而不必重新加載它。

我也是aspnet mvc的新手,而且大部分時間我都在努力處理數據輸入和輸出,所以我缺少架構明智的東西。

斯科特·古的nerddinner章節在搞清楚一些內容時非常有幫助。