簡體   English   中英

ASP.NET MVC 3中的JSON生成

[英]JSON generation in ASP.NET MVC 3

我從Scott Mitchell撰寫的有關將Google Maps與ASP.NET MVC結合使用的文章中獲得了以下示例代碼:

@{

   var locations = new List<string>();
   var infoWindowContents = new List<string>();

   foreach (var store in Model) {

       locations.Add(string.Format(
         @"{{ 
               title: ""Store #{0}"", 
               position: new google.maps.LatLng({1}, {2})
         }}",
         store.StoreNumber,
         store.Latitude,
         store.Longitude));

      infoWindowContents.Add(string.Format(
         @"{{ 
            content: ""<div class=\""infoWindow\""><b>Store #{0}</b><br />{1}<br />{2}, {3} {4}</div>""
         }}",
         store.StoreNumber,
         store.Address,
         store.City,
         store.Region,
         store.PostalCode)
      );
   }
 }

但是,當頁面呈現時,將顯示以下內容(我在“&”和“”之間添加了一個空格

{ 
    title: & quot;Store #893& quot;, 
    position: new google.maps.LatLng(32.7178080, -117.1611020)
}

最可能與JSON編碼有關,但我仍然是ASP.NET MVC的初學者。

您應該嘗試將希望輸出的JSON包裝在MvcHtmlString中

輸出位置時,不僅要使用變量,還要將其包裝在@Html.Raw(i) 通過這種方式,渲染引擎知道不必轉義可能的危險字符(如引號)。 在代碼中,它看起來應該像

@for(var location in locations)
{
    Html.Raw(location);
}

還要看一下JsonResult。 與創建自己的json字符串相比,使用Is更容易,更清潔。

嘗試使用@ :,所以它不會HTML編碼輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM