首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在C# ASP.NET中获取完整的查询字符串

在C# ASP.NET中获取完整的查询字符串
EN

Stack Overflow用户
提问于 2009-12-10 17:26:17
回答 6查看 181.1K关注 0票数 81

作为一名PHP程序员,我习惯于使用$_GET来检索HTTP查询字符串……如果我需要整个字符串,有很多方法可以做到。

然而,在ASP中,我似乎无法获得查询。

下面是news.aspx的代码(嵌入在一些超文本标记语言中):

<%                             
    string URL = "http://www.example.com/rendernews.php?"+Request.Querystring;
    System.Net.WebClient wc = new System.Net.WebClient();
    string data = wc.DownloadString(URL);
    Response.Output.Write(data);
%>

我正在从远程服务器获取PHP脚本的输出,这在没有Request.Querystring的情况下可以很好地工作。

问题是我试图在第一行获得完整的查询字符串: Request.Querystring。我得到一个错误"Object reference not set to an instance of an object“,这基本上意味着Request.Querystring不存在。

你知道问题出在哪里吗?如何获取查询字符串,以便像http://test.com/news.aspx?id=2一样调用index.aspx时,我脚本将获取http://www.example.com/rendernews.php?id=2

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-12-10 17:33:28

如果希望将原始查询字符串作为字符串,请尝试使用Request.Url.Query

票数 199
EN

Stack Overflow用户

发布于 2009-12-10 17:41:58

这对你来说应该没问题。

在页面的Page_Load事件中编写此代码。

string ID = Request.QueryString["id"].ToString();
Response.Redirect("http://www.example.com/rendernews.php?id=" + ID);
票数 17
EN

Stack Overflow用户

发布于 2009-12-10 17:27:15

Request.QueryString返回表示查询字符串的键/值对的集合。不是字符串。不过,不要认为这会导致对象引用错误。你得到的原因是因为正如毛罗在评论中指出的那样。它是Querystring,而不是QueryString。

尝试:

Request.QueryString.ToString();

<%                                 
    string URL = Request.Url.AbsoluteUri 
    System.Net.WebClient wc = new System.Net.WebClient();
    string data = wc.DownloadString(URL);
    Response.Output.Write(data);
%>

与您的代码相同,但Request.Url.AbsoluteUri将返回完整路径,包括查询字符串。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1879773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档