ASP.NET網頁之間傳遞參數與值


ASP.NET網頁之間傳遞參數與值,方法很多,可以使用Application,Cookie,Session,或是Querystring等等。
由於Insus.NET開發的程序中,多數是在后台之間進行參數與值傳遞,因此很少使用Querystring,而是使用Session。Session? 我也會。 是的,使用Session進行傳遞參數與值,懂開發的程序員都會。

使用Session傳遞網頁之間的參數與值,可以做到輕微量級或是輕量級。

為了參數與值方便進行管理,Insus.NET會把這些存放一個集合內,時行傳遞。 在專案中,會創建一個類別。



上圖中,20#代碼,是一個靜態方法,它有兩個參數,一個是Dictionary<object,object>和一個string url。參數集合將被存入Session來傳遞,而url是目標網頁的地址。就是這樣簡單。

而30#和32#行代碼,那是一個擴展方法。是判斷參數集合在添加參數時是否已經存在,存在的話,只是修改參數據值即可。

這樣子就行了。

來演示一下吧。在網站點創建兩個網頁,PageA.aspx和PageB.aspx. 前者在用戶點一點銨鈕或某一事件處理完畢,把一些參數傳至另外一個頁面,而后者,是接收參數,再進行其它邏輯處理。

在PageA.aspx拉一個銨鈕Button.




這些不是重點,重點在Button的Click事件中:


在pageB.aspx.cs接收參數:



第15,16行代碼,如果用戶直接在地址欄上輸入.../PageB.aspx的話,網頁會被導向PageA.aspx,也就是說,第一次不能直接訪問PageB.aspx,而是需要先從PageA.aspx點擊了銨鈕之后,才可以進入pageB.aspx.

看看演示,演示是把源網頁的路徑傳至目標網頁中。

 

另外一個需要注意的是Session["TransferObject"]的名稱"TransferObject"需要和最初創建一個類別InsusBase.TransferParameter()方法內的session名稱相同。
是否有改善的地方,讓在開發時,不必記住這樣多session參數名呢?方法是有的。下面就是Insus.NET需要解決的地方。

打開InsusBase.cs類別,分三步實現:

 
在接收參數的網頁,使用靜態的屬性來替代session以及session的參數名。這樣解決可以上面所提及的問題。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM