2016-05-19 13 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コンテキストで正しくエンコードされるため、<のようなシンボルは問題を引き起こしません。

関連する問題