怎样获得URL里面参数的标记?

linnys 2011-11-05 06:07:37
有类似这样的URL:
http://ip/page.aspx?id=888#123456789

使用Request.QueryString["id"],只能获取到888,原因是在URL里面“#”符号表示的是标记。

请问怎么样能完整获得“888#123456789”整串字符串?
...全文
138 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaozhang1528008 2011-11-06
  • 打赏
  • 举报
回复
好象可以取的到全部吧
暖枫无敌 2011-11-06
  • 打赏
  • 举报
回复
传递时替换#为其他字符,然后用Server.UrlEncode编码,然后在接收页面,通过Server.UrlDecode解码,然后再将字符替换回来。


public partial class _Default : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    string url;
    string name;
    url = "page.aspx?id=";
    name = "888#123456789";
    name = name.Replace("#", "@");
    Response.Redirect(url + Server.UrlEncode(name));
  }
}

public partial class Default2 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    string name = Request.QueryString["id"];
name = Server.UrlDecode(name);
name = name.Replace("@", "#");
    Response.Write(name); 
  }
}
kkbac 2011-11-06
  • 打赏
  • 举报
回复
不能获取到. 如果你真的想要. 可以客户端取得了.用ajax传递过去.
快溜 2011-11-06
  • 打赏
  • 举报
回复
是要UrlEncode编码
孟子E章 2011-11-06
  • 打赏
  • 举报
回复
#123456789
这段,是给客户端的锚点使用的,服务器是无法得到的,你要想在服务器端得到,你需要进行UrlEncode编码
改成

http://ip/page.aspx?id=888%23123456789

或者在客户端得到,然后ajax发送到服务器端
zcxverygood123456 2011-11-06
  • 打赏
  • 举报
回复
http://ip/page.aspx?id=888#123456789
-----------
看了一下http调试,浏览器根本不发送#部分。
=================
意思上面的地址#123456789这部分是多余的?
等同于http://ip/page.aspx?id=888
流浪的麻雀 2011-11-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sp1234 的回复:]

引用 6 楼 dalmeeme 的回复:

应该对参数值888#123456789进行url编码,否则一般取不到#后面的东西。


嗯是的。看了一下http调试,浏览器根本不发送#部分。
[/Quote] 都说了~~~ 路过
黄亮 2011-11-06
  • 打赏
  • 举报
回复
#是没办法的,其他都可以。
zhang1struts1yun 2011-11-06
  • 打赏
  • 举报
回复
window.location.search (前台)获取锚点
escape()编译 传参数到 后台 , 后台获取前台传过来的参数 Request.QueryString["?"]
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dalmeeme 的回复:]

应该对参数值888#123456789进行url编码,否则一般取不到#后面的东西。
[/Quote]

嗯是的。看了一下http调试,浏览器根本不发送#部分。
LMAOhuaNL 2011-11-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dalmeeme 的回复:]

假如#是做为参数值的一部分,那么应该对url进行编码,Server.UrlEncode(),取出时解码Server.UrlDecode()。
[/Quote]
这个ok进行编码
dalmeeme 2011-11-05
  • 打赏
  • 举报
回复
应该对参数值888#123456789进行url编码,否则一般取不到#后面的东西。
  • 打赏
  • 举报
回复
Request.Path、Request.RawUrl,以及Request.Url下的那么多属性,你都可以查看一下!
dalmeeme 2011-11-05
  • 打赏
  • 举报
回复
假如#是做为参数值的一部分,那么应该对url进行编码,Server.UrlEncode(),取出时解码Server.UrlDecode()。

雪石 2011-11-05
  • 打赏
  • 举报
回复
然后用正则表达式替换
雪石 2011-11-05
  • 打赏
  • 举报
回复
换个字符吧
qgqch2008 2011-11-05
  • 打赏
  • 举报
回复
你就不能换个字符麽,然后replace()一下就行了

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧