If you aren't using AJAX or some asyncronous type processing you have a few options, but it depends what you want to do.
You can set the page to do no caching at all, or set it to no-cache, take a gander at the System.Web.HttpCachePolicy class.
Code:
'***in page load events you can set it programmatically such as
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1))
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.Cache.SetNoStore()
'***via page deritives, etc
<%
Response.ExpiresAbsolute = #TheDateTime#
Response.AddHeader "pragma", "no-cache"
Response.AddHeader "cache-control", "private, no-cache, must-revalidate"
%>
But I really don't recommend this approach. This is typically a good solution if you want to kill the ability to have a history of authenticated pages, using the back button after logging out (and can't back boor in again). Trying to use these settings to force a "fresh" page pull after postback isn't going to be reliable or a good idea in my opinion.
You could always response.redirect("page",false) back to yourself, that is the old clunky stand by.
Another solution could be a javascript solution where you use an IFrame and set the src property and use the Page.RegisterStartupScript method to invoke your javascript
:
Code:
<script language="javascript" type="text/javascript">
function changeURL(url)
{
document.getElementById("iFrame").src=url;
}
</script>
Or have your button event register a start up script that simply invokes window.location.reload(); or the from the client, instruct it to reload the page, etc. That is probably your most straight forward and cleanest solution, since you isloate this behavior to a specific control event registering the start up script and invoking it, etc.
There are ways to refresh the page at given intervals server side by adding response headers, but that means you are refreshing every x number of seconds, which probably isn't what you want to do