儘管我一般用來傳遞值作爲查詢字符串,但是由於知道查詢字符串並不是一個好方法,因爲有許多安全問題,而且它的最大大小爲256字節或長度爲2048個字符。因此,它是一個很好的方法,通過設置前一頁即"<%@ PreviousPageType VirtualPath="" %>"
和訪問前一頁項目Asp.Net,從前一頁訪問變量是一個好方法?
訪問變量請讓我知道,是否有流過比Sessions
其他變量的任何其它方式使用前一頁概念的好方法?
儘管我一般用來傳遞值作爲查詢字符串,但是由於知道查詢字符串並不是一個好方法,因爲有許多安全問題,而且它的最大大小爲256字節或長度爲2048個字符。因此,它是一個很好的方法,通過設置前一頁即"<%@ PreviousPageType VirtualPath="" %>"
和訪問前一頁項目Asp.Net,從前一頁訪問變量是一個好方法?
訪問變量請讓我知道,是否有流過比Sessions
其他變量的任何其它方式使用前一頁概念的好方法?
下面是從MSDN的How to: Pass Values Between ASP.NET Web Pages:
您可以通過各種方式的頁面,其中一些 取決於重定向發生之間的信息。下列選項 可即使源頁是從目標頁面不同的ASP.NET Web應用程序 ,或者如果源頁是不是 ASP.NET Web頁:
- 使用查詢串。
- 從源頁面獲取HTTP POST信息。
以下選項僅在源頁面和目標頁面位於同一ASP.NET Web應用程序中時纔可用。
- 使用會話狀態。
- 在源頁面中創建公共屬性並訪問目標頁面中的屬性值。
- 從源頁面中的控件獲取目標頁面中的控制信息。
因此,假設您具有相同的ASP.NET應用程序PreviousPage屬性是爲您的情況準確設計的。
您可以使用另一種方法,你應該讓你在context.items
數據這種做法是非常有用的數據在兩個或多個連續的頁面之間保存。它是一種簡單的方法使用的相同:
Context.Items.Add("SOMETHING","somevalue");
*您需要使用** Server.Transfer的
代替的Response.Redirect。因爲如果你使用Response.Redirect方法,你的上下文將被清除,你不能得到任何值。
希望這會幫助你。
PreviousPage
適用於跨頁面回發。如果這就是你正在做的事情,那麼它沒有任何問題。
如果沒有回傳,則前一個頁面類的實例的引用不會(不應該)包含任何狀態信息。
如果您只是使用從一個頁面到另一個頁面的鏈接,最好使用會話狀態,Cookie或數據庫之類的內容。如果您正在進行重定向,還有幾個選項(包括使用Server.Transfer()
而不是實際重定向)。
Server.Transfer是一個嚴重的限制。即使這樣做,爲什麼你需要使用非類型集合而不是類型化的PreviousPage屬性? – Restuta 2012-01-07 05:41:31
是的,但它的加權方法也是Response.Redirect。因爲他正在尋求一種在兩頁之間傳遞數據的好方法......我想這是適當的。 – 2012-01-07 05:46:25
什麼是輕量級?在可維護性方面它很重。這很重要。 – Restuta 2012-01-07 05:47:55