一、页面跳转的方法

transfer:只能在本站点URL跳转,不能跳转到其它网站
postbackurl:凡是具有IButtonControl接口的控件都具有postbackurl属性,用未定义提交那个页面的地址(可以本站,也可以外站) 这种方法的跳转,目标页可以调用原页面的中控件的值
Server.Transfer不能直接重定向到ashx,否则会报错”执行子请求出错“

2 Transfer跳转URL地址不会改变,而用Redirect方式URL则会显示跳转后的URL地址



二、Cookie
实现单值cookie的设置



三、ASP.NET 设置元素的CSS属性
1、添加一个css规则
control.style.Add(“CSS名称”,“CSS值”)
Text Box1.style.Add(“width”,“120px”)
2、添加Class规则
Control.CssClass=“XXX”


<%%> 在服务端执行
cs可以调用aspx控件,aspx中也可以访问cs中定义的字段、函数,还是可以编写复杂的c#代码,for等所有的C#代码都可以写在aspx中(不推荐)
<%=UserName%> <%=SyaHello();%> <% if(UserName==“aa”) {userName=“bb”;}%>
<%@ %> 用来导入命名空间,主要用于再web页面定义page、引入控件、组件、设置Cache,引入命名空间等
调用字段的时候使用<%=UserName%> ,不要丢掉了 = ,相当于在当前位置调用Response.Write(UserName)
使用的函数、代码相当于在这个位置调用函数、执行代码。注意aspx中调用cs的成员级别必须是protected或者public,不能是private的
1:在.aspx页面,<% %>标签相当于在.cs页面的代码,也就是说你在.cs文件里面怎样写,就可以在.aspx文件里面的<% %>标签里面怎样写。书写后台代码。
2:在.aspx页面,<%= %>标签可以调用你的后台的变量或者方法等,不过被调用的方法必须是public的。等同于 <% Response.Write () %> 用于输出一个值,计算=后面的表达式,并将结果输出。
3:<%:%>将:号后面的内容编码输出,实际<%=Server.HtmlEncode()%>
注意:ASP.NET 控件有个属性 ClientID,控件在客户端的ID,控件在服务端的ID不一定等于客户端HTML中的ID,比如在ListView等控件的模块中。因此如果要在客户端通过Javascript DOM Jquery的 getElementById,KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲id")来操作控件的话最好不要…(‘#<%=txt1.ClientID%>’)





会话状态
每个用户(浏览器实例)一份
当用户访问Web服务器,则分配一个sessionID(存储到客户端PC),会话结束或超时,自动释放,默认20分钟,在webconfig中设置。
SessionID:24个字符组成的随机字符串
如果PC端,cookie禁用了,那么session也会失效
1、创建session
Session[“KeyName”]=“xxxx”;
Session.Add(“KeyName”,ObjectValue), 存储类型没有限制,存储大小只受内存限制
2、修改session
Session[“KeyName”]=“xxxx” 存在KeyName——>修改 不存在——>创建
3、获取一个Session
Session[“xxx”]是一个对象,
Session[“xxx”]…GetType() 获得类型
①:存储字符串
String str=Session[“ss”].ToString()
②:存储数值
int iss=(Int)Session[“ss”] 显示转换
③:如果存储一个控件
TextBox txt=(TextBox)Session[“xxxx”]
4、清除Session
①清除某一个Session
Session.Remove(“KeyName”)
②清除所有session
Session.RemoveAll()
③清除当前会话
Session.Abandon()
5、遍历Session
foreach ( string item in Session.Keys)
{
string ss = Session[item].ToString();
}Application
- 服务器内存中存储的
2、独立于用户请求的公共数据
3、只要应用程序不停止,就一直存在,直到有显示的删除或更改
4、没有存储大小限制
5、没有存储类型限制
缺乏自我管理机制,数据不会自动释放
创建一个Application
Application[“KeyName”]=ObjectValue
Application.Add(“KeyName”,ObjectValue) 如果keyname,已经存在,再用Application.Add 创建或修改只会生成keyName 副本,我们通常在Application_Start的时候去初始化一些数据,在以后的访问中可以迅速访问和检索。
获取一个Application Application.Get(“KeyName”)
①:存储字符串
String str=Application[“ss”].ToString()
②:存储数值
int iss=(Int)Application[“ss”] 显示转换
③:如果存储一个控件
TextBox txt=(TextBox)Application[“xxxx”]修改Application
Application.lock()
Application[“KeyName”]=xxxx 更新Application对象的值 Application[“KeyName”].Set(“键值”,Value)
Application.unlock()
因为Application是在整个应用程序中,所有用户公用的。当进行修改的时候,很可能另一个用户也在修改。所以修改前后必须要加锁和解锁
清除Application
Application.lock()
Application.Remove(“KeyName”);
Application.unlock()
清除所有Application
Application.lock()
Application.clear() 或者 Application.RemoveAll()
Application.unlock()
遍历Application
foreach (string item in Application.AllKeys)
{
//-----
}

OnClick 、ONServerClick 事件
1、Html控件 onClick (客户端) onServerClick(服务端)
2、web控件 onClientClick (客户端) onClick(服务端)
总之先执行客户端 再执行服务端 如果客户端 返回 return false 则服务器就不执行了
Session 的变量存储再服务器上,ViewState 存储在当前页面中,是页面级的
Session占用服务器资源,ViewState 则不占用
Session不加重html负载,ViewState 加重html负载
session 对整个application 有效,而ViewState相当于某个页面有效