I did not find a suitable article describing
Page.Items can help to transfer data from
Page to another page. Of course,
state management like: query strings, session,
others can help us to do that.
This property gets a list of objects stored in the page context,
but we will use it here to persist data from one ASP.NET page to another page.
Objects added to the
available throughout the lifetime of the page, so you can add objects to the
property in events early in the page life-cycle and access those objects
in later events.
Page.Items vs. ViewState
ViewState helps to save data at the page during
multiple posts back of the same page. On the contrary,
Page.Items is refreshed
with each page post-back.
Using the Code
The example code scenario is a login page that saves the user
name and uses
Server.Transfer to transfer it to another page, where it can be retrieved from the context of the previous page. Of course the value will
be lost upon the first post back of the page.
saves the user name in its dictionary after the user enters his name
"Omar", password "secret", and clicks the login button
The next page,
Default.aspx will use the
context of the previous page to get the user name and display the it on
the label. Therefore, you need to save the
Page.Items value from the first page
load in a session, view state or other preferred methodology.
You can use the button to cause a post-back
and refresh the page, and you will notice that an exception will be thrown.
- MSDN library
- Practical experience