【问题标题】:Capture Data From Web Address [closed]从网址捕获数据[关闭]
【发布时间】: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 中有一个看起来像&lt;system.codedom&gt;&lt;compilers&gt;&lt;compiler ... 的部分,如果有,你能粘贴那个部分吗?它是否包含一个显示&lt;providerOption name="CompilerVersion" value="v2.0"/&gt; 的节点?
  • 还阅读了以下内容,这应该是你应该做的事情 {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

标签: c# asp.net


【解决方案1】:

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?

【讨论】:

  • 这给了我一个找不到类型或命名空间名称“var”的错误
  • 您使用的是哪个 .NET / Visual Studio 版本?
  • VS2010 - 不确定哪个 .net...
  • 所以@FunFlyWhiteGuy 你不能点击帮助菜单中的about VisualStudio 来查看你使用的是什么版本.. ?
  • 版本 10.0.40219.1
猜你喜欢
  • 1970-01-01
  • 2013-08-18
  • 2013-03-10
  • 2016-03-03
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
  • 2013-03-02
  • 1970-01-01
相关资源
最近更新 更多