广州双城热恋创意文化传播有限公司

现在的位置: 主页 > 新闻中心 > 文章列表

文章正文

Asp.Net页面传值方式总结

作者:广州双城热恋创意文化传播有限公司 来源:www.999loveyou.com 发布时间:2017-09-05 12:15:38
Asp.Net页面传值方式总结 通过学习asp.net,其中讲到最多的便是控件的使用,而控件使用中最大的不同便是在对页面进行传值时,与C/S学习中有很大的不同。视频中讲的比较零碎,把那些搬来总结一下。

在asp.net中新建一个web窗体的表单(form1),在表单中进行提交数据。

那么,在接收的窗体代码中,需要写明接收的具体数据,和所要进行的具体操作,在这里利用get的method,所以用到QuerString这个属性来获取。

如下:WebForm1.aspx.cs中代码

string username = Request.QueryString["txtUserName"]; //获取对应控件中的内容,这里文本框,需输入文本框的name string password = Request.QueryString["txtPassword"]; Response.Write("您输入的用户名为:" + username +"您输入的密码为"+password); 运行login .aspx后,在webform1.aspx页面中就能看到想要的页面了。

post:传值时,利用request.form来进行获取数据。在传值时,参数并不直接显示在浏览器的地址栏中,因此相对更安全。

具体使用:

HTML表单代码,控件内容和属性名称不变。这里仍用WebForm1来进行接收

在WebForm1.aspx.cs中代码如下: string username = Request["txtUserName"].ToString(); string password = Request["txtPassword"].ToString(); Response.Write("您输入的用户名为:" + username +"您输入的密码为"+password); 在这里,post获取数据书写格式还可以为: stringusername=Request.Form.Get["txtUserName"].ToString();//密码同理 或者 stringusername=Request.Form["txtUserName"].ToString(); 那么通过以上的小例子,运行后,看一下结果

login.aspx页面:


利用get方法提交后的页面:


将该地址复制下来:

http://localhost:6186/WebForm1.aspx?__VIEWSTATE=F%2FLYU9jJCE%2BdVcxJs%2Bc4W44xOlwk0T6T8AeK9Sdfe%2BqL7oHRUW51aVmps0upcH2tmB7HcNq8bCu8zpGkvAncSdGoeXkSQq8UHzhdiyqvOCQ%3D&txtUserName=123&txtPassword=123&Button1=%E6%8F%90%E4%BA%A4&__VIEWSTATEGENERATOR=C2EE9ABB&__EVENTVALIDATION=C9fdalFhBwZC0ndMny0h2oEoJH8ggWKG2L54ydj2g%2FzAYAfHpbH%2FFOZIF5hHt6fvwnMYPnRjdFRj6TrkKDVsGpBQyXHX72Zdol2wB9OyUJPzZoJkvc7iKJ2sVO2PhGXOygkyN7WJLKmsY5298laUPx30aNjLC%2Fy0fzrmwx5D6nI%3D

可以发现,它将要传的参数加在了目的URL的后面。

而利用post提交后的界面:如下图,很简单,和起始页login.aspx页面的地址是一样的。


注意:在这里的小例子中以txtbox控件为例,在传值时,利用了textbox控件name,而当我们使用repeater或者gridview进行数据绑定后,进行传值时,可以直接利用数据库中的字段名来进行传值。

小结:通过上述,大概了解get和post的区别,在利用get方法提交时,涉及到很多的URL传值,下面有关于URL页面转向的几种类型。

URL转向页面

利用URL传值,主要有

response.redirect("http://blog.csdn.net/wangyy130/article/details/url");

server.Transfer

此二者转向页面的方式所体现的功能很类似,都能直接转向另一个页面,但是transfer方法可以实现对象传值,即在提交页面代码中可以声明一个对象及具体属性(类似于三层中实体属性的一个声明),在转向页面中即可调用前一个页面中对象的属性了。

server.execute:目前还没用过,作用:服务器端去执行另一个页面,控制权返回当前页面。

Server.Execute方法允许当前的ASPX页面执行一个同一Web服务器上的指定ASPX页面,当指定的ASPX页面执行完毕,控制流程重新返回原页面发出Server.Execute调用的位置——相当于调用本身页面的一个函数


上面几种是在代码中实现页面转向,此外还可以利用HTML标记实现例如

二、公共传值方式 1、Application

针对整个应用程序的全局变量。

利用它进行传值时,跟哈希表有些类似。如下几种方式为一个key值赋值value

Application["key"]=value; Application["key",value]; Application["key"]-----默认object类型,真正存储的是对象
通常在使用application时,为防止并发操作时发生冲突,采集软件,需要对它进行加锁。如下,对其进行调用: Application.lock(); //加锁 string a =convert.ToString(Application["key"]); .....具体操作 Application.unlock()//解锁

在使用application时在Application_Start事件中对所想声明的变量进行定义,在end事件中结束

例如:计算上网总人数和当前在线人数中在start事件中进行声明,同时可以和数据库进行连接使用。

protected void Application_Start(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("server=.;database=login;uid=sa;pwd=123456;"); conn.Open(); SqlCommand cmd = new SqlCommand("select * from countPeople", conn); int count = Convert.ToInt32(cmd.ExecuteScalar()); conn.Close(); Application["total"] = count ; //总人数 Application["online"] = 0;//在线人数 }在end事件中如下: protected void Application_End(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("server=.;database=login;uid=sa;pwd=123456;"); conn.Open(); //更新数据库   SqlCommand cmd = new SqlCommand("update countPeople set num="+Application ["total"].ToString (), conn); int count = cmd.ExecuteNonQuery(); conn.Close(); } 2、session传值

session会话,使得所传的值在规定时间内始终存在,但是它主要针对于当前登录的用户,即针对个人,存储用户的身份信息等。也为object类型,使用时,需要强制转换。它的使用类似于Application。但在使用时,可对session进行移除,利用remove方法执行。

在对session进行操作时,同样以session_Start开头,end结尾。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:宜昌SEO http://yichang.raoyu.net

COPYRIGHT © 2015 广州双城热恋创意文化传播有限公司 ALL RIGHTS RESERVED. 网站地图 技术支持:肥猫科技
精彩专题:网站建设
购买本站友情链接、项目合作请联系客服QQ:2500-38-100