我需要在不增加点击计数器的情况下刷新按钮点击页面。
8 回答
后面的代码重定向到同一页面。
Response.Redirect(Request.RawUrl);
创建一个维护命中计数器的类
public static class Counter { private static long hit; public static void HitCounter() { hit++; } public static long GetCounter() { return hit; } }
在页面加载事件中增加计数器的值
protected void Page_Load(object sender, EventArgs e) { Counter.HitCounter(); // call static function of static class Counter to increment the counter value }
将页面重定向到自身并在按钮单击时显示计数器值
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)
将刷新您的页面并增加计数器。
当您说刷新页面时,它是您正在创建的页面的新实例,因此您需要使用 astatic variable/session variable
或 amethod
来存储和检索页面上的点击次数。
就刷新页面而言,Response.Redirect(Request.RawUrl);
或者window.location=window.location
会为您完成这项工作。
单击按钮时,您可以尝试以下操作。
protected void button1_Click(object sender, EventArgs e)
{
Response.Redirect("~/Admin/Admin.aspx");
}
在 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;
}
}
谢谢
页面重新加载可以使用 javascript 代码完成。使用任何一个 HTML 按钮并像实现它一样......
<input type="button" value="Reload Page" onClick="document.location.reload(true)">
在按钮单击事件中添加一个唯一的会话或 cookie,然后使用 Request.RawUrl 在同一 URL 上重定向页面 现在在 Page_Load 事件中添加代码以获取该会话或 cookie。如果会话/cookie 匹配,那么您可以知道使用刷新按钮重定向的页面。因此,将命中计数器减少 1 以使其保持在相同的数字上做 hitcountr -= hitconter
否则增加命中计数器。
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 />
}
}
}*@