我正在尝试将我的网址存储在变量中,但我一直收到错误
无法将类型'System.Collections.Specialized.NameValueCollection'隐式转换为'string'
这是我的语法
protected void Page_Load(object sender, EventArgs e)
{
GetKeyInfo();
}
protected void GetKeyInfo()
{
//The below line is the problem line
string fulladdress = HttpContext.Current.Request.Url.Query;
Response.Write(fulladdress);
string parsed = System.Web.HttpUtility.ParseQueryString(fulladdress);
}
修改
这是browswer中显示的地址,我试图运行它
http://www.internaltesting.com/PassingDataTest/default.aspx?Information=https://XXX.XXX.X.XXX/all?token=1&cid=1832&employeeid=16432
这是完整的错误
编译错误
描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并相应地修改源代码。
编译器错误消息:CS0246:找不到类型或命名空间名称'var'(您是否缺少using指令或程序集引用?)
来源错误:
第29行:string fulladdress = HttpContext.Current.Request.Url.Query;
第30行:Response.Write(fulladdress);
第31行:var parsed = System.Web.HttpUtility.ParseQueryString(fulladdress);
第32行:字符串标记=解析[“标记”];
第33行:string employeeid = parsed [“employeeid”];
修改
这是你在web.config之后的行
<compilation debug="true"> <assemblies> <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </assemblies> </compilation>
答案 0 :(得分:2)
System.Web.HttpUtility.ParseQueryString
返回包含所有查询字符串参数的NameValueCollection
,它不是单个字符串。
var parsed = System.Web.HttpUtility.ParseQueryString(fulladdress);
string singleParam = parsed.Get("OneParam");
或者不支持var
的古老.NET / C#版本:
System.Collections.Specialized.NameValueCollection parsed = System.Web.HttpUtility.ParseQueryString(fulladdress);
string singleParam = parsed.Get("OneParam");
另见: https://msdn.microsoft.com/en-us/library/ms150046.aspx(HttpUtility.ParseQueryString方法)和How to read the query string params of a ASP.NET raw URL?