ASP.NET的三種頁面傳值方式

(1)URL參數傳遞
老技術了,不多說,主要缺點是安全性太低,比如傳用戶密碼之類的,就不好了,當然應該不會有人傻到這樣傳password吧!另一個缺點就是隻能傳簡單類型,字符串.這裏的字符串並不是那麼死的,比如要傳int,可以把int轉成string再傳^^^.不過優點也很明確,簡單方便,需要注意的是最好加下this.Server.UrlEncode()來傳,example:
this.Response.Redirect("Second.aspx?Arg=" + this.Server.UrlEncode(this.TextBox1.Text));
(2)Session會話機制
ASP.NET提供以下會話支持:
(1)便於使用的會話狀態功能,該功能是ASP開發人員所熟悉的,與其他.NET框架API兼容。
(2)可靠的會話狀態功能,可以經受得住Internet信息服務(IIS)重新啓動和輔助進程重新啓動而不丟失會話數據。
(3)可縮放的會話狀態功能,該功能可用於網絡場(多計算機)和網絡園(多進程)這2種情況,使管理員可以將更多的處理器分配給Web應用程序以提高它的可縮放性。
(4)用於不支持HTTPCookie的瀏覽器的會話狀態功能。
(5)對於核心會話狀態方案,其吞吐量相當於(或高於)ASP的吞吐量。
這種方法的優點就是可以傳任何對象,不限於字符串,安全性也較高.缺點就是佔服務器內存,因爲每個會話都保存了內容在服務器上,當會話多起來時,服務器負載會比較大,有時可能造成死機.
(3)Web服務器控件傳遞
下面用個小例子來說明:
在First.aspx中,拉個TextBox和Button控件
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

在First.aspx.cs里加個property:
public string Arg
    
{
        
get
        
{
            
return this.TextBox1.Text;
        }

    }
Button的響應函數:
protected void Button1_Click(object sender, EventArgs e)
    
{
        
this.Server.Transfer("Second.aspx");        
    }
在另一個頁面Second.aspx開頭加入:
<%@ Reference Page="~/First.aspx" %>
在Second.aspx.cs裏:
 protected void Page_Load(object sender, EventArgs e)
    
{
        First f
=(First)this.Context.Handler;
        
this.Title = f.Arg;        
    }
Second頁的標題便是First頁裏TextBox裏輸入的東西了....
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章