ASP.NET 1.1中页面数据存储方法

Context.Handler//只能用他在被调用的页面中获取调用他的页面中的数据。
Ordinarily the members of one Web form are unavailable from a subsequently displayed Web form. However, when navigating between Web forms using the Transfer or Execute method, you can retrieve read-only properties from the previous Web form the first time a subsequent Web form is displayed.
For example, the following code declares a public property named Value that returns the data entered in a text box on the Context1 Web form:

public class Context1 : System.Web.UI.Page
{
    // Create a property to return the value of a text box.
    internal string Value
    {
        get
        {
            return txtValue.Text;
        }
    }

    private void butNext_Click(object sender, System.EventArgs e)
    {
        // Transfer to the next page.
        Server.Transfer("Context2.aspx");
    }
}

When the user clicks the Button control, he or she is transferred to the Context2 Web form, which retrieves the previous Web form’s Context.Handler object, coerces that object to the previous Web form’s type, and then accesses the Context1 Value property, as shown here:

public class Context2 : System.Web.UI.Page
{
    private void Page_Load(object sender, System.EventArgs e)
    {
        if (!IsPostBack)
        {
            // Declare an object using the previous page's type.
            Context1 LastPage;
            // Coerce the Context.Handler object to the page's type.
            LastPage = (Context1)Context.Handler;
            // Display the Value property.
            lblValue.Text = LastPage.Value;
        }
    }
}

You can transfer complex types from one Web form to another in this way, but remember that the Context.Handler object reflects only the immediately previous Web form—on postback events, it will reflect the currently displayed Web form. Also remember that the Transfer method does not notify the user’s browser that the page address has changed. If the user clicks Refresh on his or her browser, the user receives a warning that the page can’t be refreshed without resending information.

Query Strings//存在链接中
Query strings allow you to send additional information along with an address. In HTML, query strings appear after a question mark in a hyperlink, as shown here:
private void butSend_Click(object sender, System.EventArgs e)
{
    // Redisplay this page with a QueryString
    Response.Redirect(Request.FilePath + "?UName=Wombat");
}
To retrieve a query string in code, use the QueryString method of the Request object.
private void Page_Load(object sender, System.EventArgs e)
{
    // Check for QueryString
    if (Request.QueryString["UName"] != null)
    {
        // Display message.
        lblQstring.Text = "QueryString UName=";
        // Display QueryString
        lblQstring.Text += Request.QueryString["UName"];
    }
}

Cookies//客户端的少量数据
Use cookies to store small amounts of information on the client’s machine. Web sites often use cookies to store user preferences or other information that is client-specific. Because cookies can be refused, it is important to check whether the browser allows them before you try to create them.
private void Page_Load(object sender, System.EventArgs e)
{
    // Run the first time this page is displayed.
    if(!IsPostBack)
        // If the browser supports cookies.
        if(Request.Browser.Cookies)
        {
            // Create a cookie.
            HttpCookie cookUPrefs = new HttpCookie("UPrefs");
            cookUPrefs.Value = "English";
            // Add the cookie.
            Response.Cookies.Add(cookUPrefs);
        }
}

private void Page_Load(object sender, System.EventArgs e)
{
    // Run the first time this page is displayed.
    if(!IsPostBack)
        // If the browser supports cookies.
        if(Request.Browser.Cookies)
            // Check if the UPrefs cookie exists
            if(Request.Cookies["UPrefs"] != null)
                // Save the value of the cookie.
                Session["Lang"] = Request.Cookies["UPrefs"]. Value;
}

ViewState
Use the ViewState property to save data in a hidden field on a page. Because ViewState stores data on the page, it is limited to items that can be serialized. If you want to store more complex items in ViewState, you must convert the items to and from a string.

Application and Session States
Use the Application and Session states to store data that you want to keep for the lifetime of an application or for the lifetime of a session. You can store any type of data in the Application or Session state, including objects. However, you should consider the following issues before using the Application and Session states:

Application and Session state variables are created on the fly, without variable name or type checking. You should limit your access points to these variables.

Maintaining Session state affects performance. Session state can be turned off at the application and page levels.

Application state variables are available throughout the current process, but not across processes. If an application is scaled to run on multiple servers or on multiple processors within a server, each process has its own Application state.

The Web application’s boundaries determine the scope of the Application state.
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值