我需要在按钮点击时刷新页面而不增加点击计数器。
在代码背后重定向到同一页面。
Response.Redirect(Request.RawUrl);
Create a class for maintain hit counters
public static class Counter { private static long hit; public static void HitCounter() { hit++; } public static long GetCounter() { return hit; } }
Increment the value of counter at page load event
protected void Page_Load(object sender, EventArgs e) { Counter.HitCounter(); // call static function of static class Counter to increment the counter value }
Redirect the page on itself and display the counter value on button click
protected void Button1_Click(object sender, EventArgs e) { Response.Write(Request.RawUrl.ToString()); // redirect on itself Response.Write("<br /> Counter =" + Counter.GetCounter() ); // display counter value }
您可以执行Response.redirect("YourPage",false)
,它将刷新您的页面并增加计数器。
On button click you can try the following.
protected void button1_Click(object sender, EventArgs e)
{
Response.Redirect("~/Admin/Admin.aspx");
}
And on PageLoad you can check whether the loading is coming from that button then increase the count.
protected void Page_Load(object sender, EventArgs e)
{
StackTrace stackTrace = new StackTrace();
string eventName = stackTrace.GetFrame(1).GetMethod().Name; // this will the event name.
if (eventName == "button1_Click")
{
// code to increase the count;
}
}
Thanks
When you say refresh the page, its new instance of the page that you are creating so you need to either have a static variable/session variable
or a method
to store and retrieve the count of hits on your page.
As far as refreshing the page is concerned, Response.Redirect(Request.RawUrl);
or window.location=window.location
would do the job for you.
Page reload can be done using javascript code. Use either a HTML button and implement it like...
<input type="button" value="Reload Page" onClick="document.location.reload(true)">
XmlDocument doc = new XmlDocument(); doc.Load(@"F:\\dji\\A18rad\\A18rad\\XMLFile1.xml"); List<vreme> vreme = new List<vreme>(); string grad = Request.Form["grad"]; foreach (XmlNode cvor in doc.SelectNodes("/vreme/Prognoza")) { if (grad == cvor["NazivMesta"].InnerText) vreme.Add(new vreme { mesto = cvor["NazivMesta"].InnerText, maxtemp = cvor["MaxTemperatura"].InnerText, mintemp = cvor["MinTemperatura"].InnerText, vremee = cvor["Vreme"].InnerText }); } return View(vreme); } public ActionResult maxtemperature() { XmlDocument doc = new XmlDocument(); doc.Load(@"F:\\dji\\A18rad\\A18rad\\XMLFile1.xml"); List<vreme> vreme = new List<vreme>(); foreach (XmlNode cvor in doc.SelectNodes("/vreme/Prognoza")) { vreme.Add(new vreme { mesto = cvor["NazivMesta"].InnerText, maxtemp = cvor["MaxTemperatura"].InnerText }); } return View(vreme); } } } @*@{ ViewBag.Title = "maxtemperature"; } @Html.ActionLink("Vreme Po izboru","index","home") <h2>maxtemperature</h2> <table border="10"> <tr><th>Mesto</th> <th>MaxTemp</th> </tr> @foreach (A18rad.Models.vreme vr in Model) { <tr> <td>@vr.mesto</td> <td>@vr.maxtemp</td> </tr> } </table>*@ @*@{ ViewBag.Title = "Index"; } @Html.ActionLink("MaxTemperature","maxtemperature","home") @using(Html.BeginForm("Index","Home")){ <h2>Index</h2> <span>Grad:</span><select name="grad"> <option value="Nis">Nis</option> <option value="Beograd">Beograd</option> <option value="Kopaonik">Kopaonik</option> </select> <input type="submit" value="Moze" /><br /> foreach (A18rad.Models.vreme vr in Model) { <span>Min temperatura:</span> @vr.mintemp<br /> <span>Max temperatura:</span> @vr.maxtemp<br /> if(vr.vremee =="Kisa"){ <span>Vreme:</span> <img src ="kisa.jpg" /> } else if(vr.vremee =="Sneg"){ <img src="sneg.jpg" /> } else if (vr.vremee == "Vedro") { <img src ="vedro.png" /><br /> } } }*@
Add one unique session or cookie in button click event then redirect page on same URL using Request.RawUrl Now add code in Page_Load event to grab that session or coockie. If session/cookie matches then you can knows that page redirected using refresh button. So decrease hit counter by 1 to keep it on same number do hitcountr -= hitconter
Else increase the hit counter.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.