【发布时间】:2016-05-20 00:20:49
【问题描述】:
我试图将我的网址存储在一个变量中,但我不断收到错误
无法将类型“System.Collections.Specialized.NameValueCollection”隐式转换为“字符串”
这是我的语法
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);
}
编辑
这是我试图运行它的浏览器中显示的地址
http://www.internaltesting.com/PassingDataTest/default.aspx?Information=https://XXX.XXX.X.XXX/all?token=1&cid=1832&employeeid=16432
这是给出的完整错误
编译错误
描述:在编译服务此请求所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改您的源代码。
编译器错误消息:CS0246:找不到类型或命名空间名称“var”(您是否缺少 using 指令或程序集引用?)
来源错误:
第 29 行:字符串 fulladdress = HttpContext.Current.Request.Url.Query;
第 30 行:Response.Write(fulladdress);
第 31 行:var parsed = System.Web.HttpUtility.ParseQueryString(fulladdress);
第 32 行:字符串 token = parsed["token"];
第 33 行:stringemployeeid = parsed["employeeid"];
编辑
这是您所追求的 web.config 中的行吗
<compilation debug="true"> <assemblies> <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </assemblies> </compilation>
【问题讨论】:
-
错误告诉你问题是什么。你试图将 List
分配给一个字符串如果你将字符串更改为 var parsed它会编译或将你的代码更改为@ 987654327@ 并在您的班级顶部添加以下using System.Collections.Specialized;google 是否在您的树林中工作..?查看msdn文档-msdn.microsoft.com/en-us/library/ms150046(v=vs.110).aspx -
不,它没有。我对其进行了测试,它可以编译。请粘贴一个示例,说明在调试代码时 fulladdress 是什么。
-
@FunFlyWhiteGuy 您使用的是什么版本的 C#/.NET?对
var的支持早就出来了。 -
你的
web.config中有一个看起来像<system.codedom><compilers><compiler ...的部分,如果有,你能粘贴那个部分吗?它是否包含一个显示<providerOption name="CompilerVersion" value="v2.0"/>的节点? -
还阅读了以下内容,这应该是你应该做的事情 {MSDN Implicitly Typed Local Variables](msdn.microsoft.com/en-us/library/bb384061.aspx) 我还告诉过你,如果你不想使用单词
var,您需要将变量声明为以下NameValueCollection parsed = System.Web.HttpUtility.ParseQueryString("myAddress");并添加到.cs 文件的顶部using System.Collections.Specialized