【问题标题】:Most Reliable Way to Serialize Object in Data Attribute在数据属性中序列化对象的最可靠方法
【发布时间】:2016-05-19 14:53:04
【问题描述】:

我想知道使用 c# 在数据属性(例如<div data-options="[jsonlike object]>")中序列化对象的最可靠方法是什么。我想使用 $.data() 获取这些数据,如果数据没有以一种好的方式写入(例如空格),jquery 无法获取正确的对象并返回一个字符串。

我可以完全访问 JSON.Net 库。

【问题讨论】:

  • 这里“可靠”的衡量标准是什么?
  • 在原生转换为 javascript 对象的过程中不会失败。

标签: javascript c# asp.net .net


【解决方案1】:
  1. 如果您还没有 JSON.NET Nuget 包,请安装它。
  2. 使用它。例如,在 Razor 语法中:

    <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 上下文正确编码,因此 &lt; 之类的符号也不会导致问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    相关资源
    最近更新 更多