Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#ASP.NET中获取完整查询字符串_C#_Asp.net_Url - Fatal编程技术网

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

在C#ASP.NET中获取完整查询字符串,c#,asp.net,url,C#,Asp.net,Url,作为一名PHP程序员,我习惯使用$\u GET检索HTTP查询字符串。。。如果我需要整根绳子,有很多方法可以做到 然而,在ASP中,我似乎无法获取查询 以下是news.aspx(嵌入某些HTML中)的代码: 我正在从远程服务器获取PHP脚本的输出,这在没有Request.Querystring的情况下可以完美地工作 问题是我试图在第一行获取完整的查询字符串:Request.Querystring。我得到一个错误“对象引用未设置为对象的实例”,这基本上意味着该请求。Querystring不存在

作为一名PHP程序员,我习惯使用$\u GET检索HTTP查询字符串。。。如果我需要整根绳子,有很多方法可以做到

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

以下是news.aspx(嵌入某些HTML中)的代码:


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

问题是我试图在第一行获取完整的查询字符串:Request.Querystring。我得到一个错误“对象引用未设置为对象的实例”,这基本上意味着该请求。Querystring不存在


你知道这里有什么问题吗?当像脚本获取请求一样调用index.aspx时,如何获取该查询字符串。QueryString将返回表示查询字符串的键/值对集合。不是一串。但不要认为这会导致对象引用错误。正如毛罗在评论中指出的那样,你之所以会这样做。这是质询,而不是质询

尝试:



与代码相同,但将返回完整路径,包括查询字符串

如果希望原始查询字符串作为字符串,请尝试使用。

这对您来说应该很合适

在页面的
页面加载事件中写入此代码

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

只需使用
Request.QueryString.ToString()
获取完整的查询字符串,如下所示:

string URL = "http://www.example.com/rendernews.php?"+Request.Querystring.ToString();

我已经测试了您的示例,虽然Request.QueryString不能转换为既不隐式也不显式的字符串,但.ToString()方法仍然返回正确的结果

此外,在示例中使用“+”运算符连接字符串时,它还将返回正确的结果(因为其行为就像调用了.ToString()一样)

因此,您的代码没有任何问题,我建议您的问题是因为您在编写代码时输入了“Querystring”而不是“Querystring”


这对于错误消息更有意义,因为如果问题是QueryString是一个集合而不是字符串,那么它必须给出另一个错误消息

就在刚才,我遇到了同样的问题。我用以下方式解决它

Response.Redirect("../index.aspx?Name="+this.textName.Text+"&LastName="+this.textlName.Text);

关于

它是否总是失败,或者是否存在诸如未定义get变量之类的边缘情况?我得到:“'System.Web.HttpRequest'不包含'Querystring'的定义,并且没有扩展方法'Querystring'接受'System.Web.HttpRequest'类型的第一个参数”,当我尝试在它前面添加System.Web时,我得到“名称空间'System.Web'中不存在类型或名称空间名称'Request'(是否缺少程序集?)”可能需要确保您没有在某处重写请求。我使用Request.Querystring[.ToString()]进行了一些操作这不是QueryString,不是QueryString吗?上面的代码看起来像c#-记住区分大小写在我的例子中,这正是我想要避免的,因为ToString()在我被迫使用的****旧版本的.NET framework中有错误。这将返回类的名称。@Allov我已经测试过了,它确实正确地返回了查询字符串,事实上甚至没有.ToString()当与字符串连接时它会起作用。在.Net 4中它不起作用。可能它是为其他版本的.Net投票的。它实际上正在更改&for&;,因此它会使其无法使用。Request.Url.Query更好。在任何框架或编程语言中都不要像这样构建Url。使用Url生成器。他们会为你,上面的代码没有做到。
string ID = Request.QueryString["id"].ToString();
Response.Redirect("http://www.example.com/rendernews.php?id=" + ID);
string URL = "http://www.example.com/rendernews.php?"+Request.Querystring.ToString();
Response.Redirect("../index.aspx?Name="+this.textName.Text+"&LastName="+this.textlName.Text);