2014-09-29 47 views
1

如何停止下列字符串中的&編碼爲& amp;HtmlHelper編碼爲&&

public static class GoogleMaps 
{ 
    public static MvcHtmlString DisplayMap(this HtmlHelper html, 
         GoogleMapData mapData, int width, int height) 
    { 
     const string GOOGLE_MAP_API = "xxx"; 
     const string GOOGLE_MAP_DOMAIN = "www.google.com/maps"; 
     const string GOOGLE_MAP_ACTION = "/embed/v1/view"; 

     var tag = new TagBuilder("iframe"); 
     tag.MergeAttribute("width", width.ToString()); 
     tag.MergeAttribute("height", height.ToString()); 
     tag.MergeAttribute("style", "border:0"); 
     tag.MergeAttribute("frameborder", "0"); 

     string googleMapUrl = String.Format(
           @"{0}://{1}{2}?key={3}&center={4}", 
           "https", 
           GOOGLE_MAP_DOMAIN, 
           GOOGLE_MAP_ACTION, 
           GOOGLE_MAP_API, 
           mapData.Coordinates.ToString() 
              ); 
     tag.MergeAttribute("src", googleMapUrl); 

     return MvcHtmlString.Create(tag.ToString()); 

    } 
} 

這與SRC生成的iframe像這樣:

SRC =「https://www.google.com/maps/embed/v1/view?key=myAPIkey &中心= 52.377736 ,4.915779"

的GoogleMaps忽略中心(GPS座標)

我想是這樣的:

SRC =「https://www.google.com/maps/embed/v1/view?key = myAPIkey & center = 52.377736,4.915779「

+1

精心製作的,請哪位的HtmlHelper內建,自己的節目更多的代碼。? 。目前沒有涉及MVC代碼,只是String.Format(),它不是HTML編碼。 – abatishchev 2014-09-29 23:46:37

+0

&符號是HTML編碼格式的'&'。如果你不希望它被編碼,你會需要用別的東西代替編碼器,你自己或者你可以通過&手動使用'String.Replace()'方法來代替。 – gretro 2014-09-30 00:52:25

+0

看起來像它的@目前 – CRice 2014-09-30 06:24:58

回答

0

您可以使用System.Web.HttpUtility.HtmlDecode(tag.Tostring())嘗試此操作以生成Html標記字符串,然後在MvcHtmlString.Create()例程中使用此字符串。

相關問題