C# 名为';url';导致我的Web应用程序出现奇怪的结果

C# 名为';url';导致我的Web应用程序出现奇怪的结果,c#,asp.net,http,web-applications,C#,Asp.net,Http,Web Applications,我以前问过这个问题,但我还有另一个问题。比如,如果我像这样加载我的页面: http://localhost:57845/api.ashx?v=123&usr=&url= 然后试着做: string strUser = context.Request["usr"]; string strURL = context.Request["url"]; strUser和strURL都将设置为“”,这是我所期望的 但如果你这样称呼它: http://localhost:57845/api

我以前问过这个问题,但我还有另一个问题。比如,如果我像这样加载我的页面:

http://localhost:57845/api.ashx?v=123&usr=&url=
然后试着做:

string strUser = context.Request["usr"];
string strURL = context.Request["url"];
strUser
strURL
都将设置为“”,这是我所期望的

但如果你这样称呼它:

http://localhost:57845/api.ashx?v=123
strUser
将为
null
,我也希望如此,但
strURL
将设置为“/api.ashx”


为什么会这样?

我相信这是来自请求的一部分。如果您请求
remote\u addr
或任何其他内容(假设您通过IIS),您也会得到一个值

如果只想从查询字符串中获取参数,请使用以下属性:

string strUrl = context.Request.QueryString["url"];

(我还强烈建议您去掉变量名上的类型前缀,但那是另一回事。)

我相信这是来自请求的一部分。如果您请求
remote\u addr
或任何其他内容(假设您通过IIS),您也会得到一个值

如果只想从查询字符串中获取参数,请使用以下属性:

string strUrl = context.Request.QueryString["url"];

(我还强烈建议您去掉变量名上的类型前缀,但这是另一回事。)

尝试使用Request.QueryString[“usr”]尝试使用Request.QueryString[“usr”]谢谢。您知道我使用Direct
context.Request
的原因是因为我可以从get和POST获取输入…@user843732:您不知道特定参数的来源吗?您可以使用
context.Request.QueryString
context.Request.Form
分别获取查询字符串和表单变量。。。所以这并不是说你不能处理POST请求。您总是可以编写自己的方法,只从这两个源获取数据,而忽略服务器变量和cookie。但不管怎样,这就是为什么您会得到
url
:)的值,谢谢。使用另一个参数可能更容易:(出于好奇,在我的变量名上使用类型前缀有什么不好?@user843732:您的声明中已经有了变量的类型。如果您的方法相当短,您应该可以很容易地看到它。前缀只是增加了一些模糊性。此外,在处理问题时,它明显违反了惯例ke parameters.Thank.你知道我使用Direct
context.Request的原因是因为我可以从get和POST获取输入…@user843732:你不知道特定参数来自哪里吗?你可以使用
context.Request.QueryString
context.Request.Form
分别获取查询字符串和表单变量事实上…这并不是说你不能处理POST请求。你可以编写自己的方法,只从这两个源获取,忽略服务器变量和cookie。但无论如何,这就是为什么你会得到
url
:)的值。谢谢。使用另一个参数可能更容易:(出于好奇,在我的变量名上使用类型前缀有什么不好?@user843732:您的声明中已经有了变量的类型。如果您的方法相当短,您应该可以很容易地看到它。前缀只是增加了一些模糊性。此外,在处理问题时,它明显违反了惯例ke参数。