asp.net页面之间传值方法详解

时间:2022-09-02 19:42:21

asp.net中页面之间传值我们用得最多的就是get,post这两种了,其它的如session,appliction,cookie等这些相对来说少用也不是常用的,只是在特殊情况下在使用了。

1. Get(即使用QueryString显式传递)
方式:在url后面跟参数。
特点:简单、方便。
缺点:字符串长度最长为255个字符;数据泄漏在url中。
适用数据:简单、少量、关键的数据。
适用范围:传递给自己、传递给另一个目标页面;常用于2个页面间传递数据。
用法:例如:url后加?UserID=…,跳转到目标页面,目标页面在伺服端可用Request.QueryString["InputText"]获取其指定参数值。

例子:(1)a.aspx

代码如下 复制代码
private void Button1_Click(object sender, System.EventArgs e)
{
  string s_url;
  s_url = "b.aspx?name=" + Label1.Text;
  Response.Redirect(s_url);
}

(2)b.aspx

代码如下 复制代码
private void Page_Load(object sender, EventArgs e)
{
  Label2.Text = Request.QueryString["name"];
}

2. Post
方式:通用的方式。利用form提交。
特点:最常用的方法。常用技巧是把隐秘的数据存在隐藏域中由form提交。
适用数据:大量数据,包括文件上传。
适用范围:同Get方法
用法:在客户端form指定action目标后submit、在asp.net的伺服端中使用server.Transfer(url)提交;在伺服端中用Request.Form["FormFieldID"]获取。

实例

代码如下 复制代码
<form id="form1" action="GetUserInfo.aspx" method="post">

<table align="center" cellpadding="0" cellspacing="10px" border="0" style="width: 320px;border:1px solid gray;" >
<tr>
<td colspan="2" class="title" align="center">修改密码</td>
</tr>
<tr>
<td class="left">输入新密码:</td>
<td class="right">
<input type="password" id="userPwd" name="userPwd" style="width: 175px" />
</td>
</tr>
<tr>
<td class="left">&nbsp;&nbsp;确认密码:</td>
<td class="right">
<input type="password" id="verifyPwd" name="verifyPwd" style="width: 175px" />
</td>
</tr>
<tr>
<td colspan="2" style="text-align: center">
<hr />
(www.111cn.net) <input type="hidden" name="username" value="<%=后台定义的变量读数据库时赋值%>"/></td>
<input type="submit" value="修改" />
<input type="reset" value="重置" />
</td>
</tr>
</table>
</form>

有一个方法,根据POST和GET分别取值。

代码如下 复制代码
public object string GetValueFromPage(string inputName,int type)
{
HttpContext rq = HttpContext.Current;
object TempValue = "";

if (type==1)
{
if (rq.Request.Form[inputName] != null)
{
TempValue = rq.Request.Form[inputName];
}

}
else if (type==0)
{
if (rq.Request.QueryString[inputName] != null)
{
TempValue = rq.Request.QueryString[inputName];
}
}
return TempValue;
}

那么当提交至GetUserInfo.aspx页面时,GetUserInfo.aspx.CS中可以这样获取值。

下面介绍一下其它的传值缺点和优点

cookie
方式:将数据存在客户端的经典方法。
缺点:安全性低、受客户端设置限制、一个站点仅存20个cookie,每个容量4096字节。

Session
方式:将用户数据存储在伺服端。
特点:asp.net中可以设置session的存储方式、位置、SessionID的保存是否依赖cookie。
可以直接存储对象。
缺点:asp.net中有失效的隐患
Cache
方式:将用户数据存储在伺服端数据缓存中。
特点:可以大大提高效率。 可以直接存储对象。
Appliction
方式: 将数据存储于此,相当于全局变量。
特点:可以直接存储对象。整个站点的共享数据
ViewState
方式:asp.net特有机制,用来恢复页面状态。
特点:将页面各控件及其所存数据序列化存在name为_ViewState的隐藏域中。
缺点:存在HTML中,安全性较低。可以设置加密和验证,但数据量会大增、效率有影响。
Static
方式: 将数据存于静态变量中。
特点:利于提高效率。
缺点:若用不好会致使用户或页面间数据紊乱,造成极大的隐患。建议只赋值一次,绝对禁止为单个用户而更改此值。

总结:了上面这些我没人详细介绍的页面之间传值方法看起来真不适合我们常用的WEB中的普通的页面与页面之间传值了,只能适合于特殊的场合了。
from:http://www.111cn.net/net/net/42641.htm

asp.net页面之间传值方法详解的更多相关文章

  1. ASP&period;NET 页面之间传值的几种方式

    开篇概述 对于任何一个初学者来说,页面之间传值可谓是必经之路,却又是他们的难点.其实,对大部分高手来说,未必不是难点. 回想2016年面试的将近300人中,有实习生,有应届毕业生,有1-3年经验的,有 ...

  2. 【ASP&period;NET MVC系列】浅谈ASP&period;NET 页面之间传值的几种方式

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  3. asp&period;net iis URLRewrite 实现方法详解

    原文 asp.net iis URLRewrite 实现方法详解 实现非常简单首先你要在你的项目里引用两个dll:actionlessform.dll.urlrewriter.dll,真正实现重写的是 ...

  4. Angular&period;js中处理页面闪烁的方法详解

    Angular.js中处理页面闪烁的方法详解 前言 大家在使用{{}}绑定数据的时候,页面加载会出现满屏尽是{{xxx}}的情况.数据还没响应,但页面已经渲染了.这是因为浏览器和angularjs渲染 ...

  5. ASP&period;NET页面之间传值

    介绍: 在网页应用程序的开发中,页面之间的传值应该是最常见的问题了. 在这篇文章里,azamsharp 将为我们介绍一些ASP.NET页面传值的方式.本文所举的例子非常简单,仅仅包含了一个文本框和几个 ...

  6. ASP&period;NET页面之间传值的几种方式

    1.  QueryString 当页面上的form以get方式向页面发送请求数据时,web server将请求数据放入一名为QEURY_STRING的环境变量中,QeueryString方法从这个变量 ...

  7. ASP&period;NET页面之间传值Server&period;Transfer&lpar;4&rpar;

    这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效. Serve ...

  8. ASP&period;NET页面之间传值的方式之Cookie(个人整理)

    Cookie Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问您的网站时,应用程序 ...

  9. ASP&period;NET页面之间传值Cookie&lpar;3&rpar;

    这个也是大家常使用的方法,Cookie用于在用户浏览器上存储小块的信息,保存用户的相关信息,比如用户访问某网站时用户的ID,用户的偏好等, 用户下次访问就可以通过检索获得以前的信息.所以Cookie也 ...

随机推荐

  1. webform 简单控件

    html中12个表单元素添加runat="server"后称为控件 Lable 编译之后是 <span></span> 属性:CssClass  编译成 c ...

  2. php5-fpm&period;sock failed &lpar;13&colon; Permission denied&rpar; error

    In order to fix the php5-fpm.sock failed error follow these instructions 1) Make sure your virtual h ...

  3. ADS&lpar;一&rpar;

    LC匹配 已知输入输出阻抗,设计LC匹配电路使输入输出阻抗共轭匹配 Step1 Step2 Result1 Result2     微带线单枝匹配 已知源和负载阻抗,求微带线单枝匹配电路 Step1 ...

  4. 【Java】如何检测、替换4个字节的utf-8编码(此范围编码包含emoji表情)

    > 参考的优秀文章 1.十分钟搞清字符集和字符编码 2.Java中byte与16进制字符串的互相转换 3.[异常处理]Incorrect string value: '\xF0\x90\x8D\ ...

  5. 解决外部机器通过VM内ubuntu IP 无法访问vm内web服务的问题

    1. 2.i root@ubuntu:/home/udapeng# ifconfig root@ubuntu:/www/sentry# nano uwsgi.ini root@ubuntu:/www/ ...

  6. 安装及配置jdk和tomcat

    系统变量 新建 JAVA_HOME 变量 .变量值填写jdk的安装目录(如是 E:\Java\jdk1.7.0_25) 系统变量→找到 Path 变量→编辑 在变量值最后输入 %JAVA_HOME%\ ...

  7. Linux查看系统信息(CentOS 7中测试通过)

    以下命令运载CentOS7中测试通过 Linux查看服务器系统信息 CentOS版本 [root@blog ~]# cat /etc/os-release NAME="CentOS Linu ...

  8. js数据类型转换 ----流程控制

    数据类型转换: //number转换成str // var str=a+''; // console.log(str); // console.log(typeof str); //转换成字符串了 v ...

  9. python 换行符的识别问题&comma;Unix 和Windows 中是不一样的

    关于换行符的识别问题,在Unix 和Windows 中是不一样的(分别是n 和rn).默认情况下,Python 会以统一模式处理换行符.这种模式下,在读取文本的时候,Python 可以识别所有的普通换 ...

  10. 12 Overlap Graphs

    Problem A graph whose nodes have all been labeled can be represented by an adjacency list, in which ...