社区
C#
帖子详情
【c# webform】页面参数传递
ma_ta
2005-03-19 11:43:19
我需要传 '%2004%' 这样的值到另外一个页面(即b.aspx?a1='%2004%'),不知道有没有什么好的方法
关于用网页url传值的方法来传递特殊字符,大家有没有详细点的资料?
...全文
393
21
打赏
收藏
【c# webform】页面参数传递
我需要传 '%2004%' 这样的值到另外一个页面(即b.aspx?a1='%2004%'),不知道有没有什么好的方法 关于用网页url传值的方法来传递特殊字符,大家有没有详细点的资料?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
syeerzy
2005-03-24
打赏
举报
回复
上面的方法可以用来传楼主希望的这种数据,在上个页面中数据是什么样,下个页面就什么样。
例子传的是控件属性,所以用控件了,其实可以不需要控件。
syeerzy
2005-03-24
打赏
举报
回复
介绍一种传值方法:以下全部代码刚才测试过正常工作复制即可
范例:
第一个页面是WebForm2,第2个才是WebForm1,不好意思弄反了。下面是全部代码,已经编译通过。
chuandi(传递)是名字空间
WebForm2:
<%@ Page language="c#" Codebehind="WebForm2.aspx.cs" Inherits="chuandi.WebForm2" %>
<HTML>
<HEAD>
<title>WebForm2</title>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:Button id="Button1" runat="server" Text="传"></asp:Button>
</form>
</body>
</HTML>
using System;
namespace chuandi
{
public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button Button1;
public string Text1
{
get
{
return this.TextBox1.Text;
}
}
private void Page_Load(object sender, System.EventArgs e)
{}
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("WebForm1.aspx");
}
}
}
WebForm1:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" Inherits="chuandi.WebForm1" %>
<%@ Reference Page="WebForm2.aspx" %>
<HTML>
<HEAD>
<title>WebForm1</title>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:Label id="Label1" runat="server">Label</asp:Label>
<asp:Button id="Button1" runat="server" Text="返回"></asp:Button>
</form>
</body>
</HTML>
using System;
namespace chuandi
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Label Label1;
public chuandi.WebForm2 wf2;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
wf2=(chuandi.WebForm2)Context.Handler;
Label1.Text="上页传来的是:"+wf2.Text1;
}
}
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("WebForm2.aspx");
}
}
}
gaochundu
2005-03-24
打赏
举报
回复
根据 xixigongzhu(夕夕宝贝) 的意思:
A页面:
private void Button1_Click(object sender, System.EventArgs e){
Server.Transfer( "B.aspx?test=" + Server.UrlEncode( "%2004%" ) );
}
B页面:
private void Page_Load(object sender, System.EventArgs e){
this.TextBox1.Text = this.Request["test"].ToString();
}
测试成功。
ballboy628
2005-03-24
打赏
举报
回复
session传就行啦,或者只把2004传过去,再加上别的
ma_ta
2005-03-24
打赏
举报
回复
问题其实是出在取a1值的时候,应该是%2004%,结果我取出来是04%
我跟踪了,在page_load里取Request["a1"]的值还是%2004%
不过同一个地方取convert.tostring(Request["a1"])之后结果就不一样
不信你们试一试
xixigongzhu
2005-03-23
打赏
举报
回复
难道convert.string()这函数有decode功能
------------------------------------------
不可能有这个功能的 肯定是哪个地方处理错了 楼主再仔细跟踪一下
ma_ta
2005-03-23
打赏
举报
回复
不过我是只encode没有decode啊,难道convert.string()这函数有decode功能?不明白
xixigongzhu
2005-03-21
打赏
举报
回复
这也就是为什么%2004%会变成 04%的原因,因为在取的时候系统自动将%20解码到空格了
xixigongzhu
2005-03-21
打赏
举报
回复
因为Server.UrlDecode解码过程是系统自动的,不需要调用的,如果调用就相当于用了两次解码,这样跟先前没用编码是一个意思了
xixigongzhu
2005-03-21
打赏
举报
回复
<a href="test.aspx?key=%252004%25">aaaaaaaaaa</a>中的%252004%25是%2004%经过Server.UrlEncode编码之后的字符串
xixigongzhu
2005-03-21
打赏
举报
回复
其实只需要在传之前用Server.UrlEncode编码一下就可以了:
<%@ Page language="c#"%>
<script language='c#' runat=server>
private void Page_Load(object send, EventArgs e) {
Response.Write(Request["key"]);
}
</script>
<HTML>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<a href="test.aspx?key=%252004%25">aaaaaaaaaa</a>
</form>
</body>
</HTML>
在取的时候注意不需要Server.UrlDecode解码了
lgsg_01
2005-03-21
打赏
举报
回复
在帮助文档里找那个URL方面的编码就可以了
ma_ta
2005-03-21
打赏
举报
回复
不过我要这样传值的页面比较多一些,用Session的话,感觉有点乱,而且如果有些页面只访问一次的话,不知道对性能有什么影响
Betteronly
2005-03-21
打赏
举报
回复
%20 是空格,url 中這樣表示,
就具體這些該查那些資料偶也不清楚!!
關注ing...
Iceguy
2005-03-21
打赏
举报
回复
其实用Session也是可以传值的。而且一般的字符串类型都可以
ma_ta
2005-03-21
打赏
举报
回复
问题其实是出在取a1值的时候,应该是%2004%,结果我取出来是04%
后来我跟踪了一下,原来取Request["a1"]的值还是%2004%,不过convert.string(Request["a1"])之后结果就不一样了,不知道是为什么
greenery
2005-03-19
打赏
举报
回复
如果你只需要传1~2个参数,建议你使用URL传送http://localhost/test.aspx?p1=abcd&p2=22.5&p3=%20%30....
如果你好使用一下方式获取上一个页面的全部信息
youform 中将需要提供给其他页面使用的控件或其他信息定义为只读属性供其他页面访问
YouForm1 youform = (SetSearchCondition)Context.Handler;
SearchCondition c = youform .Condition;
LoveCherry
2005-03-19
打赏
举报
回复
url编码一下就好了
csdn5201
2005-03-19
打赏
举报
回复
用Server.UrlEncode()加密一下,然后用Server.UrlDecode解密。就行了
Tomgus
2005-03-19
打赏
举报
回复
可以用base64 处理
加载更多回复(1)
ASP.NET MVC 3仿Server.Transfer效果的实现方法
例如需要传递大数据量参数、或者复杂对象类型参数的场景,get方式肯定是有限制的。 在
web
form
里面,有一种服务器端跳转方式:Server.Transfer,相信大家一定都还记得。这种方式是中止当前
页面
执行,并将执行流程转入...
C#
/.Net开发精品系列课程——初、中级教程
ASP.NET就业实例教程系列课程7个,分别如下:课程1: ASP.NET基础入门,课程2: ADO.NET数据库访问技术应用,课程3:一般处理程序,课程4:三层架构,课程5:
Web
Form
控件,课程6:委托、匿名方法、Lambda、Linq查询...
.net(
C#
)
页面
之间传递参数的几种方法
页面
之间传递参数的几种方法荟萃 第一种方法: 通过URL链接地址传递 send.aspx: protected void Button1_Click(object sender, EventArgs e) { Request.Redirect("Default2.aspx?username=honge"); } receive...
关于
c#
web
form
通用变量的几种办法
C#
中没有了像VB.Net中的全局变量,那么我们如何实现在不同的
页面
间传递参数呢? 下面举例说明如何实现这一功能. 1.新建一个项目. 2.在该工程中添加一个窗体
Form
1. 3.在该窗体中定义静态型字符串变量...
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章