The Postback Model
ASP.NET Web Forms wraps every interactive element inside a single <form runat="server"> tag per page, and instead of navigating to a different URL for each action, most controls submit that same form back to the same page URL, a pattern called a postback. This lets Web Forms simulate a stateful, event-driven experience on top of stateless HTTP: clicking a Button doesn't take you to a new page, it resubmits the current page's form with extra hidden fields that tell the server exactly which control triggered the submission and what, if any, additional argument accompanied it.
Cricket analogy: A postback is like a bowler returning to the same end of the pitch to bowl the next delivery rather than switching grounds entirely, the action happens repeatedly at the same location with each ball carrying its own specific outcome.
How Postbacks Are Triggered
The client-side JavaScript function __doPostBack(eventTarget, eventArgument), automatically emitted by ASP.NET into the rendered page, is what actually submits the form when a control like a LinkButton (which isn't a native submit element) needs to trigger a postback; it populates the hidden __EVENTTARGET and __EVENTARGUMENT fields with the ID of the triggering control and any extra data before calling form.submit(). Controls that support the AutoPostBack property, such as a DropDownList or CheckBox, wire this same __doPostBack call to a native browser event like onchange or onclick, so selecting a new item can immediately post the page back to the server without the user clicking a separate button.
Cricket analogy: The __doPostBack function is like a twelfth man radioing in exactly which player needs a substitution and why, before the change is officially processed on the field, giving the umpires the precise target and reason for the interruption.
Cross-Page Posting
By default a postback always targets the same page it originated from, but setting a Button's PostBackUrl property redirects the form submission to a different page entirely, a pattern called cross-page posting; the receiving page can then access the originating page's public controls through the strongly typed PreviousPage property (after declaring a @PreviousPageType directive) to read values the user entered before navigating away. This is Web Forms' answer to passing structured data between pages without resorting to query strings or Session state, though it only works for controls that explicitly set PostBackUrl rather than the default same-page postback.
Cricket analogy: Cross-page posting is like a fielder throwing the ball directly to the wicketkeeper at the stumps rather than relaying it through an intermediate fielder first, a direct hand-off to a specific different destination.
<%-- LoginPage.aspx --%>
<asp:TextBox ID="UsernameTextBox" runat="server" />
<asp:Button ID="LoginButton" runat="server" Text="Log In"
PostBackUrl="~/Welcome.aspx" />
<%-- A DropDownList that posts back immediately on selection change --%>
<asp:DropDownList ID="CountryDropDown" runat="server" AutoPostBack="true"
OnSelectedIndexChanged="CountryDropDown_SelectedIndexChanged">
<asp:ListItem Text="United States" Value="US" />
<asp:ListItem Text="India" Value="IN" />
</asp:DropDownList>
// Welcome.aspx.cs
// @PreviousPageType VirtualPath="~/LoginPage.aspx" directive added to Welcome.aspx
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
TextBox usernameBox = (TextBox)PreviousPage.FindControl("UsernameTextBox");
if (usernameBox != null)
{
WelcomeLabel.Text = "Welcome, " + usernameBox.Text + "!";
}
}
}
Because a full postback re-executes the entire page lifecycle and re-renders the complete HTML response, every postback carries the overhead of a full round trip and full page reload, even for something as small as updating one label. ASP.NET AJAX's UpdatePanel control addresses this by intercepting the postback client-side and only refreshing the markup inside the panel, giving the appearance of a partial update while the server-side lifecycle still technically runs in full.
- A postback resubmits the same page's single server-side form rather than navigating to a new URL.
- The __doPostBack JavaScript function populates __EVENTTARGET and __EVENTARGUMENT before submitting.
- AutoPostBack wires controls like DropDownList to trigger __doPostBack on native browser events.
- PostBackUrl enables cross-page posting, redirecting the submission to a different page entirely.
- PreviousPage (with @PreviousPageType) lets the receiving page read the originating page's controls.
- Every postback re-executes the full page lifecycle and re-renders the complete HTML response.
- UpdatePanel layers AJAX on top of postbacks to visually refresh only part of the page.
Practice what you learned
1. What does a standard ASP.NET Web Forms postback submit to?
2. What is the purpose of the __doPostBack JavaScript function?
3. What does setting AutoPostBack="true" on a DropDownList do?
4. What does the PostBackUrl property on a Button enable?
5. How does the destination page access the originating page's controls in cross-page posting?
Was this page helpful?
You May Also Like
The Page Lifecycle
A walkthrough of the ASP.NET Web Forms page lifecycle — Init, Load, events, PreRender, and Unload — and why the order determines where your code belongs.
Server Controls
An explanation of ASP.NET Web Forms server controls — HTML server controls, Web server controls, and data-bound controls like GridView — and how they raise events.
ViewState Explained
How ASP.NET Web Forms' ViewState mechanism preserves control state across postbacks, how it's serialized, and when to disable it for performance.
What Is ASP.NET Web Forms?
An introduction to ASP.NET Web Forms, the event-driven, stateful web framework in the classic .NET Framework built around .aspx pages and code-behind classes.
Related Reading
Related Study Notes in Microsoft Technologies
Browse all study notesWindows 10 / UWP Development Study Notes
.NET · 30 topics
Microsoft TechnologiesWindows Batch Scripting Study Notes
Batch · 30 topics
Microsoft TechnologiesMFC (Microsoft Foundation Classes) Study Notes
C++ · 30 topics
Microsoft TechnologiesSilverlight Study Notes
.NET · 30 topics
Microsoft TechnologiesXAML Study Notes
.NET · 30 topics
Microsoft TechnologiesWPF (Windows Presentation Foundation) Study Notes
.NET · 30 topics