【发布时间】:2012-07-25 11:49:40
【问题描述】:
我有一个变量
string rawURL = HttpContext.Current.Request.RawUrl;
如何读取此网址的查询字符串参数?
【问题讨论】:
标签: c# asp.net url parameters query-string
我有一个变量
string rawURL = HttpContext.Current.Request.RawUrl;
如何读取此网址的查询字符串参数?
【问题讨论】:
标签: c# asp.net url parameters query-string
在 .NET Core 中有多种方法可以访问 HttpContext,例如 IHttpContextAccessor。
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-context?view=aspnetcore-5.0
当你有上下文时,你可以简单地使用这个方法:
httpContext.Request.QueryString.Value
用法:
网址:https://localhost:44335/test?key=123
var key = System.Web.HttpUtility.ParseQueryString(httpContext.Request.QueryString.Value).Get("key");
【讨论】:
这会解决你的问题.....
string strReq = "";
strReq = HttpContext.Current.Request.RawUrl;
strReq = strReq.Substring(strReq.IndexOf('?') + 1);
【讨论】:
试试这个:
string rawURL = HttpContext.Current.Request.ServerVariables["query_string"];
【讨论】:
这可能就是你所追求的
Uri theRealURL = new Uri(HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.RawUrl);
string yourValue= HttpUtility.ParseQueryString(theRealURL.Query).Get("yourParm");
【讨论】:
Request 对象上有 Params 属性,可让您轻松完成。你不必自己解析它。
【讨论】:
无需通过RawUrl - Request 对象已包含使用Request.QueryString 属性解析的版本。
这是一个已编入索引的NameValueCollection。
【讨论】:
Request.Params(@Piotr 建议),这在某些情况下很好。在其他情况下,我已按照@Oded 的建议切换到Request.QueryString。 Request.QueryString 不会触发参数验证,例如当您接受 HTML 作为输入时,您可能希望避免这种情况。