2012-04-19 35 views
0

我使用ASP.Net MVC 3創建了雅虎天氣API應用程序,當我試圖將郵編插入文本字段以查找正確的XML時,我想爲標準英國郵政編碼留下空白。你能幫我做到嗎?以下代碼的model.PostCode代表已在模型中聲明爲字符串的PostCode變量。該代碼位於控制器文件中。URL中的空格

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--

在此先感謝您。

回答

2

使用UrlEncode

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

如何使用以UrlEncode?能否請你解釋一下我這個問題? – Leo 2012-04-19 12:33:33

+0

我給了你一個例子,併發布了一個鏈接到MSDN文檔?你不明白什麼? – Jason 2012-04-19 12:59:17

+0

我已經使用了這個,並感謝它正在工作。 – Leo 2012-04-20 08:13:22

1

所有的瀏覽器是做了與%20替換空間,你可以通過替換複製此,請嘗試:

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

然後在你的代碼中使用它上面,像這樣:

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