0

我使用 ASP.Net MVC 3 创建了 yahoo 天气 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;
  }

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

先感谢您。

4

2 回答 2

2

使用UrlEncode

string WoeidUrl = "http://where.yahooapis.com/v1/places.q('" 
    + UrlEncode(postCode)
    + "')?appid=EzZDnOXV34EzJpQ8mX8mc62cYk1Gu21DzUhsLr.4nQ2qz.xffZah.RNq8lObxA--";
于 2012-04-19T11:40:30.537 回答
1

浏览器所做的就是用 %20 替换空间,您可以通过使用 Replace 来复制它,尝试:

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

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

string WoeidUrl = "http://where.yahooapis.com/v1/places.q('" 
    + postCode
    + "')?appid=EzZDnOXV34EzJpQ8mX8mc62cYk1Gu21DzUhsLr.4nQ2qz.xffZah.RNq8lObxA--";
于 2012-04-19T11:33:59.973 回答