2016-05-19 22 views
1

我想知道什麼是最可靠的方式來使用c#序列化數據屬性中的對象(例如<div data-options="[jsonlike object]>")。我想要使​​用$ .data()來獲取這些數據,如果數據寫得不好(例如空格),jquery將無法獲得正確的對象並返回一個字符串。最可靠的方法來序列化數據屬性中的對象

我可以完全訪問JSON.Net庫。

+0

這裏「可靠」的措施是什麼? – Jamiec

+0

生存本地轉換爲JavaScript對象而不失敗。 –

回答

2
  1. 如果您還沒有安裝JSON.NET Nuget包,請安裝它。
  2. 使用它。例如,在剃鬚刀的語法:

    <div class="my-component" data-options="@JsonConvert.SerializeObject(new 
        { 
         active = true, 
         name = "Foo", 
         // ... 
        })"> 
    </div> 
    
  3. 消耗它:

    jQuery(function($) { 
        $('.my-component').each(function() { 
        var component = $(this); 
        var options = component.data('options'); 
        component.somePlugin(options); 
        }); 
    }) 
    

JsonConvert.SerializeObject()將確保不管任何怪異字符,如反斜槓存在下的對象呈現爲有效的JSON,。 Razor的@語法將確保生成的JSON針對HTML上下文進行正確編碼,因此像<這樣的符號也不會導致問題。

相關問題