如何在页面视图或按钮单击之间增加ASP.NET(C#)中的变量
发布时间:2020-12-16 09:15:39 所属栏目:asp.Net 来源:网络整理
导读:我觉得我在这里缺少一些关键. 我已经尝试过关注http://msdn.microsoft.com/en-us/magazine/cc300437.aspx的指南 在谷歌,但我看不到我没有做的. 我有一些非常基本的代码,我写的只是试图让它工作: Default.aspx代码: %@ Page Language="C#" AutoEventWireup=
我觉得我在这里缺少一些关键.
我已经尝试过关注http://msdn.microsoft.com/en-us/magazine/cc300437.aspx的指南 我有一些非常基本的代码,我写的只是试图让它工作: Default.aspx代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" EnableSessionState="True" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Demo Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="myLabel" runat="server" Text="foo"></asp:Label> <asp:LinkButton ID="lnkClickButton" runat="server" OnClick="lnkClickButton_Click" CommandName="Clicky">Click Me</asp:LinkButton> </div> </form> </body> </html> Default.aspx.cs代码: using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender,EventArgs e) { Session["clickcount"] = 0; Cache["clickscount"] = 0; } protected void lnkClickButton_Click(object sender,EventArgs e) { Session["clickcount"] = (int)Session["clickcount"] + 1; Cache["clickscount"] = (int)Cache["clickscount"] + 1; Label myLabel = ((Label)this.FindControl("myLabel")); if (myLabel != null) { myLabel.Text = "Session: " + Session["clickcount"] + "; Cache: " + Cache["clickscount"] + ";"; } } } 我已经尝试使用会话对象和缓存对象来增加值,但无济于事.我每次都得1分. 注:这是我的第一个asp.net项目,我也是c#的新手. 解决方法
每次回发都会运行Page_Load以及初始加载.您需要在Page_Load中指定不回发:
protected void Page_Load(object sender,EventArgs e) { if (!Page.IsPostBack){ Session["clickcount"] = 0; Cache["clickscount"] = 0; } } 更好的是,指定只有在它还没有值的情况下才应该设置它: protected void Page_Load(object sender,EventArgs e) { if (Session["clickcount"] == null){ Session["clickcount"] = 0; } } 只是为了澄清,如果没有设置值,最好只设置值是每次有人直接访问页面时Page.IsPostBack为false.比如说你有你的页面http://example.com/Demo/Default.aspx,并且在顶部有一个你在logo here中包装的徽标,每当有人点击徽标时会重置会话,即使他们实际上没有离开页面.如果他们在浏览器上刷新而没有重新发布最后一篇文章也会发生. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何将HTML页面转换为.ASPX页面并向其添加/删除
- asp.net – 在新的MVC4应用程序中获取UserId(int)
- 如何说服我的管理员从ASP.NET 2.0升级到3.5?
- asp.net – Page_Init vs OnInit
- asp-classic – ASP页面中的msxml3.dll错误“80072ee2”
- asp.net – Session实际上如何在MVC中运行?
- asp.net-mvc – ASP.NET MVC – 如何获取一个动作的完整路径
- asp.net-mvc – 我应该在ASP.NET MVC项目中将类文件存储在哪
- 在更新到ASP.NET 4后,IE中的会话“立即过期”? (FF工作正常
- asp.net-mvc – MVC Razor RC 1:可以用字符串常量定义@sec
推荐文章
站长推荐
- 如何在ASP.Net Core 2.0应用程序中使用Bootstrap
- [ASP.NET MVC]通过对HtmlHelper扩展简化“列表控
- asp.net – 无法在UpdatePanel中下载文件
- asp.net-mvc – ASP.NET MVC:无法在我的控制器中
- asp.net-mvc – 如何使用activedirectorymembers
- asp.net – 如何使用Visual Studio的内置SQL服务
- asp.net-mvc-3 – MVC3显示日期短时间没有格式字
- asp.net-mvc-3 – 存储库模式和Azure表存储(???)
- asp.net-mvc – 支持Asp.NET MVC Razor的编辑器
- 从Asp.net查看页面调用Ajax调用返回视图的控制器
热点阅读