0

ASP.NetMVC3を使用してyahooWeatherAPIアプリを作成しました。正しい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 に答える