简体   繁体   English

单击按钮刷新asp.net页面

[英]Refresh an asp.net page on button click

我需要在按钮点击时刷新页面而不增加点击计数器。

在代码背后重定向到同一页面。

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. 在PageLoad上,您可以检查加载是否来自该按钮,然后增加计数。

       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. 当您说刷新页面时,它正在创建的页面的新实例,因此您需要具有static variable/session variable或存储和检索页面上的点击计数的method

As far as refreshing the page is concerned, Response.Redirect(Request.RawUrl); 就刷新页面而言, Response.Redirect(Request.RawUrl); or window.location=window.location would do the job for you. window.location=window.location将为您完成工作。

Page reload can be done using javascript code. 页面重新加载可以使用javascript代码完成。 Use either a HTML button and implement it like... 使用HTML按钮并实现它...

<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. 在按钮单击事件中添加一个唯一会话或cookie,然后使用Request.RawUrl在同一URL上重定向页面现在在Page_Load事件中添加代码以获取该会话或coockie。 If session/cookie matches then you can knows that page redirected using refresh button. 如果session / cookie匹配,那么您可以使用刷新按钮知道该页面被重定向。 So decrease hit counter by 1 to keep it on same number do hitcountr -= hitconter 因此,将点击计数器减1以保持相同的数字hitcountr - = hitconter

Else increase the hit counter. 否则增加点击计数器。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM