从Web地址捕获数据

时间:2016-02-09 20:44:29

标签: c# asp.net

我正在尝试将我的网址存储在变量中,但我一直收到错误

  

无法将类型'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>

1 个答案:

答案 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?