我该把只运行一次的东西放在哪里呢
本文关键字:一次 在哪里 运行 | 更新日期: 2023-09-27 18:14:54
我有一个c#网站,其中包括一个主页。因此,当用户第一次打开站点时,我想运行一个脚本,告诉我用户的居住地。然后我将该信息写入一个隐藏字段,任何时候我需要引用该信息,我将从这个隐藏字段中提取它。
那么,我应该把这个引用放在代码后面的哪里,使它只运行一次?我试着把它放在protected void master_Page_PreLoad(object sender, EventArgs e)
里面的if (!IsPostBack)
,没有工作。
有什么建议吗?
好吧,HiddenField不能满足你的要求。
我建议您首先选择您喜欢的持久性机制。这是一个很棒的MSDN页面,它列出了ASP中可用的所有持久性机制。净:
ASP。. NET状态管理概述
这是一个涵盖机制的列表:
- viewstate
- 控件状态
- 隐藏字段 列表项
- <
- 饼干/strong>
- 查询字符串 应用程序状态
- 会话状态
- 配置文件属性
仔细阅读如何实现您选择的机制,尝试一些代码,如果您有进一步的问题,请发布新的问题。
可以在Global的Session_Start方法中指定值。asax页
void Session_Start(object sender, EventArgs e)
{
setValue();
}
protected void setValue(){
session["DefaultValue"]="test";
}
Session_Start方法将只在为登录用户创建会话时执行一次,然后存储在会话中的值将在整个应用程序中访问。
如果你从数据库访问数据,那么你可以在登录后检索数据并将其存储在会话中。
如果你使用Google map访问数据,那么在Master page !Ispostback检查会话中的数据,如果没有找到,那么从客户端页面运行脚本将值存储在hiddenfield中。如果session data为null,则在回发后将hidden field的值存储在session中。