簡體   English   中英

將數據結構保存在幾頁上?

[英]Hold a data structure over several pages?

我正在使用 .NET 3.5,當您在不同頁面之間傳輸時,我需要一些有關如何保存數據 object 的幫助。

這是我的設置:

我有一個四步注冊,其中每個步驟都包含自己的 web 頁面。 我希望能夠在頁面之間的 memory 中保存 object 而不將其保存到數據庫中。 每個頁面都會為這個 object 添加一些內容。

只是為了方便起見,假設我有一個 object 之類的

public class MyObject
{
    private int myNumber;
    private String myName;
    private List<Person> myFriends; //Person is simply a class that has a Strign name with getter and setters. 
    public MyObject()
    {
        myFriends = new List<Person>();
    }

    public void setMyNumber(int i){
        myNumber = i;
    }

    public void setMyName(String n)
    {
        myName = n;
    }

    public void setMyFriends(List<Person> li)
    {
        myFriends = li;
    }

    public void addFriend(Person p)
    {
        myFriends.Add(p);
    }

}

當我到達最后一頁並收集了所有數據時,我會將其提交到我的數據庫中。 在 c# 中執行此操作的最佳方法是什么? 任何不錯的鏈接或示例都會很棒!

Http 是無狀態協議,可以使用 Session 變量,將 Person 的 object 存入Session["variable"] = [Object]並在最后一頁訪問。

例如將數據存儲在 session 中

Session["Test"] = "Hello World"; //store in session
string str = (string)Session["Test"];//retrieving from session

因此,一旦該值存儲在 session 中,就可以從其他頁面檢索。

您可以使用會話/cookie 來保存數據。

session的使用示例代碼見下方。

如何:在 Session State 中保存值

string firstName = "Jeff";
string lastName = "Smith";
string city = "Seattle";
Session["FirstName"] = firstName;
Session["LastName"] = lastName;
Session["City"] = city;

如何:從 Session State 讀取值

string firstName = (string)(Session["First"]);
string lastName = (string)(Session["Last"]);
string city = (string)(Session["City"]);

參考:
http://msdn.microsoft.com/en-us/library/ms178581.aspx#CodeExamples

如果您正在使用進程內 session state 模式,則可以將此類 object 存儲在 Z21ED454240CFBE2508A.

否則,您需要定制一些自定義方法,因為 SQL 和 StateServer 模式將在每次您想要檢索和存儲它時序列化和反序列化 object - 不太理想 -。 使用 session state,即使在這種操作模式下,如果您的 object 與字符串、整數或任何其他基本類型一樣簡單(就性能而言這不會是問題)。

我想如果它是一些向導,您將不需要存儲大量數據,因此您可以使用 session state。

也許您想存儲文本或其他一些重要的東西,我相信最好的解決方案是查看 Windows Workflow Foundation,它具有持久存儲 API 以便您可以管理工作流程(如您的向導)並在完成后保存一些 Z9ED39E2EA931586B6EZ85733一些步驟,但我再說一遍,這可能是一個很好的矯枉過正。 如果此用戶注冊向導需要大量信息,請采納此建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM