URL中的空格

时间:2012-04-19 11:28:53

标签: c# .net asp.net-mvc asp.net-mvc-3

我使用ASP.Net MVC 3创建了雅虎天气API应用程序,当我尝试将邮政编码插入文本字段以找到正确的xml时,我想留下标准英国邮政编码的差距。你能帮帮我吗?以下代码的model.PostCode表示在模型中声明为字符串的PostCode变量。此代码位于控制器文件中。

private Boolean LookupWeather(ref RssModels model)
{    
  string WoeidUrl = "http://where.yahooapis.com/v1/places.q('" +
                     model.PostCode +
                     "')?appid=EzZDnOXV34EzJpQ8mX8mc62cYk1Gu21DzUhsLr.4nQ2qz.xffZah.RNq8lObxA--";

  XDocument getWoeid = XDocument.Load(WoeidUrl);

  try
  {
    model.Woied = (int)(from place in getWoeid.Descendants("place")
                        select place.Element("woeid")).FirstOrDefault();
    return true;
  }
  catch
  {
    return false;
  }

如果可以请帮助我获取如下网址。 http://where.yahooapis.com/v1/places.q('mk10%202hn')?appid=EzZDnOXV34EzJpQ8mX8mc62cYk1Gu21DzUhsLr.4nQ2qz.xffZah.RNq8lObxA--

提前谢谢。

2 个答案:

答案 0 :(得分:2)

使用UrlEncode

string WoeidUrl = "http://where.yahooapis.com/v1/places.q('" 
    + UrlEncode(postCode)
    + "')?appid=EzZDnOXV34EzJpQ8mX8mc62cYk1Gu21DzUhsLr.4nQ2qz.xffZah.RNq8lObxA--";

答案 1 :(得分:1)

所有浏览器都在用%20替换空间,你只需使用Replace就可以复制它,试试:

string postCode = model.PostCode.Replace(" ", "%20");

然后在上面的代码中使用它,如下所示:

string WoeidUrl = "http://where.yahooapis.com/v1/places.q('" 
    + postCode
    + "')?appid=EzZDnOXV34EzJpQ8mX8mc62cYk1Gu21DzUhsLr.4nQ2qz.xffZah.RNq8lObxA--";