ASP.NET 关于查询页面的url地址问题

请教个问题. 比方说一个商品集显示页面, 我点击勒颜色选择中的红色, 商品显示全部是红色有关的商品, 我再点击每页显示记录条数的 60 条, 商品显示出来的是红色的 60 条记录. 而点击翻页面仍是这样的查询条件. 我就想问一下, 这传值的 url 地址该怎么做到呢? 就是说这些限定的查询条件都在 url 里面传递, 可是我不知道怎么把上一次的查询条件和本次的综合到一起进行新的一次查询. 我试着用过 session 保存查询条件参数. 可是那样地址上面没有显示. 我看过好多比较有名气的商品网站都是用这种地址传值的方式.哪位兄弟知道麻烦告诉我.我手头上总共也就这么多分勒...
我举个例子吧, 一个products.aspx 的商品集合页面. 当我点击勒颜色选择中的红色, 返回来给我的页面里, 除颜色选择的超链接外, 比如说显示记录条数, 相对应的地址就变成了 products.aspx?color=red&count=60. 而在我没选择红色之前的那个页面(此次操作之前的页面), 显示记录的超链接是 products.aspx?count=60 , 请问这是怎么做到的...

给你复制点页面传值的方法,自己看看吧...懒了下:
1. Response.Redirect (或称 Query String 方式、URL方式)

Response.Redirect("WebForm5.aspx");

首先让我们看看 Response.Redirect 方法,这应该是最简单的了,当我们点击Response.Redirect按钮后触发上面的那行代码即可。在这里跟大家分享一个小技巧:有些时候我们会把上面的代码放在try{ ... }catch() 中去,也就是说当我们捕获异常,并把异常传递给另一个网页。如果我们尝试这样做,也许会得到一个“System.Threading” 异常,这是因为我们跳转到了另外一个页面,而原来的页面线程仍然在运行中。可以这样来解决此问题:

Response.Redirect("WebForm5.aspx",false);

这意味着告诉编译器去“WebForm5.aspx”, 同时“false”参数告诉编译器不要停止在原来页面上的活动, 这方面我们可以参见System.Threading类。
在下面的代码中,“txtName”是待传值的文本框的名字,那个跟在“?”后面的“Name” 是一个临时response变量的标志,它承载了txtName的值。

private void Button1_Click(object sender, System.EventArgs e)
{
// Value sent using HttpResponse
Response.Redirect("WebForm5.aspx?Name="+txtName.Text);
}

OK,到此位置,我们已经完成了Response的传值。但是,我们在"WebForm5.aspx"中怎样接收传来的值呢?不要急,我们将在"WebForm5.aspx"的page_Load事件中写下面的代码。首先,我们要确认传来的值不是“null”,如果不是“null”,我们就可以用Label将这个值显示出来。

注:当我们使用Response.Redirect传递变量时,所有的变量都能在浏览器的URL中看到,我们不能用这种方法来传递重要的机密数据,如信用卡号等。

if (Request.QueryString["Name"]!= null)
Label3.Text = Request.QueryString["Name"];

2. Cookies 方式

接下来是用cookies, Cookies由服务端创建,但保存在客户端,当我们点击“Cookies”按钮时,运行如下代码:

HttpCookie cName = new HttpCookie("Name");
cName.Value = txtName.Text;
Response.Cookies.Add(cName);
Response.Redirect("WebForm5.aspx");

首先,我们创建了一个名叫“cName”的cookie实例,由于一个cookie实例可以保存多个值,我们需要告诉编译器这个cookie将保存“Name”值,并把txtName.Text的值赋给它,并把它加到"输出流” 中,并使用Response.Redirect输出到另外一个网页。
然后让我们看看怎样在目标页面中取出这个cookie中的值:

if (Request.Cookies["Name"] != null )
Label3.Text = Request.Cookies["Name"].Value;

显然,步骤跟上一种方法非常相似,只是使用Request.Cookies代替了Request.QueryString。
注:一些浏览器是不支持Cookies的。

3. Session 变量

接下来我们看看在服务端维持的Session变量。 Session在用户向服务端发出首次请求时被创建,而在用户关闭浏览器或异常发生时终止(其实还有过期的情况)。下面的代码是用Session来传值的例子。 我们可以看到 Session 为用户创建了“Name” 键,并把TextBox的值赋给它。

// Session 创建
Session["Name"] = txtName.Text;
Response.Redirect("WebForm5.aspx");

// 下面的代码显示如何从Session中取值
// 代码放在其它页面中

if(Session["Name"] != null)
Label3.Text = Session["Name"].ToString();

4. Application 变量

有些时候,我们需要一个值能够在所有的页面中访问,这时候我们可以使用Application变量。 如下列代码所示,一旦我们创建了Application变量并赋值,就可以在网站(项目)的所有页面中获得它。

// 为Application变量赋值

Application["Name"] = txtName.Text;
Response.Redirect("WebForm5.aspx");

// 从Application变量中取出值

if( Application["Name"] != null )
Label3.Text = Application["Name"].ToString();

5. Server.Transfer方式(或称HttpContext方式)

我们还可以使用 Server.Transfer方式(或称HttpContext方式)在页面之间传递变量,此时,要传递的变量可以通过属性或方法来获得,使用属性将会比较容易一些。好,让我们在第一个页面中来写一个用来获得TextBox值的属性:

public string GetName
{
get { return txtName.Text; }
}

我们需要使用Server.Transfer把这个值发送到另外一个页面中去,请注意Server.Transfer只是发送控件到一个新的页面去,而并不会使浏览器重定向到另一个页面。所以,我们我们在地址栏中仍然看到的是原来页面的URL。如下代码所示:

Server.Transfer("WebForm5.aspx");

接下来,我们到"WebForm5.aspx"看看:

// You can declare this Globally or in any event you like

WebForm4 w;

// Gets the Page.Context which is Associated with this page

w = (WebForm4)Context.Handler;
// Assign the Label control with the property "GetName" which returns string

Label3.Text = w.GetName;
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-30
用?color=red&id=12这样的方法,到后面用request["id"]接收

判断对方有没有选择啊,比如
string str="";
if (是不是选择)
{
str="color=red";
}

<a href="products.aspx?"+ str +""本回答被提问者采纳

ASP.net怎么获取其他页面的URL
如果是从哪个页面跳转到当前页面,可以根据来源URL来取得。否则的话,可以通过在当前url后面加一个参数来取得:a.aspx?url=...

asp.net获取url问题
有些汉字显示不了 说明你的编码方式有问题 一般用gb2312就可以了 好像在配置文件里可以设置特定的编码方式 里面有个关键字

asp.net获取url的问题
这是编码问题,你在传递中文时先用UrlEncode把它给加密,然后接收时再UrlDecode解密即可。

Asp.net中如何将显示出来的URL地址转换为超链接?(使用C#实现)_百度...
这个简单,用正则表达式就可以了引用命名空间:using System.Text.RegularExpressions;string strContent = “这是测试 http:\/\/www.test.com";\/\/超级链识别Regex urlregex = new Regex(@"( http:\\\/\\\/([\\w.]+\\\/?)\\S*)",RegexOptions.IgnoreCase| RegexOptions.Compiled);strContent = urlregex.Rep...

asp。net,如果用户直接输入网址,如何获取网址对其做处理后在显示页面...
通过ASP.NET获取 如果测试的url地址是 http:\/\/www.test.com\/testweb\/default.aspx, 结果如下: Request.ApplicationPath: \/testweb Request.CurrentExecutionFilePath: \/testweb\/default.aspx Request.FilePath: \/testweb\/default.aspx Request.Path: \/testweb\/default.aspx Request.PhysicalApplicationPath...

asp.net网站的URL如何实现只显示目录
一. 你有国际域名的所有权,直接指向你的IP好了,再用隐藏frame 二. 就是你的域名转向支持隐藏URL 至少我是这么认为的 以前我都是用主框架方法的 主页页index.htm里 <!-- Frame required. --> 类似这种吧

ASP.NET 关于 服务器 URL
测试的url地址是http:\/\/www.test.com\/testweb\/default.aspx, 结果如下:Request.ApplicationPath: \/testweb Request.CurrentExecutionFilePath: \/testweb\/default.aspx Request.FilePath: \/testweb\/default.aspx Request.Path: \/testweb\/default.aspx Request.PathInfo:Request.Physical...

ASP.NET在网页运行时,如何使浏览器URL中显示的用户名和密码加密或不显示...
1,你可以使用Post方法传输变量,可以不显示在URL,具体格式你可以参照1楼 2,建议你使用状态变量来存储账户信息 即在注册或登陆成功之后,使用 session[Name] ="Admin"session[Pass] ="123"后面你需要这些值得时候,直接把session[Name],session[Pass]当变量用,但是在注销的时候需要把他们释放清空 ...

asp.net URL重写问题 源地址有问号
?号后面的数据只是你要传过去的数据而已 Response.Redirect("Default7.aspx?ID=111");重定向 Request.QueryStrin["ID"];获取传过来的数据

asp.net mvc3(C#)限制在地址栏输入部分视图url来直接查看部分视图怎么做...
你 子视图里查一下 Reference URL(HttpRequest.UrlReferrer )是不是从 你想要的页面里链过来的,如果不是,就跳走或者显示禁止的信息,如果是的,就显示正常的页面。希望能帮到你。

相似回答