2012-04-19 27 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--";