【问题标题】:Visual Studio Intellisense for JavaScript when generated from JavaScriptSerializer从 JavaScriptSerializer 生成时用于 JavaScript 的 Visual Studio Intellisense
【发布时间】:2011-11-04 21:27:18
【问题描述】:

在使用JavaScriptSerializer 创建客户端对象时,在 Visual Studio 2010 中获取 JavaScript Intellisense 的正确方法是什么?

例如,我有一个名为Record 的类,它有几个属性;我正在生成Records 的集合,然后使用JavaScriptSerializer 对它们进行序列化。

代码背后

public string JsonRecords
{
    get
    {
        var js = new System.Web.Script.Serialization.JavaScriptSerializer();
        return js.Serialize( Records );
    }
}

ASPX 页面

<script>
  // mocks the Record object
  var records = [{ "Date": "", "Latitude": 0, "Longitude": 0 }];

  // sets the Record object
  records = <%= JsonRecords %>;
</script>

当我预填充 JS 记录变量以模拟 Records 类时,我获得了 Visual Studio 的完整智能支持。

这可行,但感觉很脏。有没有更合适的方法?或者这是一种常见的做法?

【问题讨论】:

    标签: c# javascript visual-studio-2010 javascriptserializer javascript-intellisense


    【解决方案1】:

    在 Visual 中获取 JavaScript Intellisense 的正确方法是什么 Studio 2010 什么时候通过 JavaScriptSerializer 创建对象?

    等待 VSNext 或一些可以启用这种情况的补丁。目前不支持将 javascript 与服务器端代码混合使用的场景中的 Intellisense。

    【讨论】:

      【解决方案2】:

      Javascript intellisense 是通过解析脚本本身生成的,因此除非您在脚本(或引用的脚本)中定义了内联属性,否则您将看不到 intellisense。

      如果您想与智能感知一起使用但最终将通过动态构造提供的结构,那么您可以将它们存根到不同的 .js 文件中,然后在文件中包含参考标记:

      /// <reference path="../xxx.js" />
      

      这将被视为客户端中的注释,但 Visual Studio 会在您处理代码时提取它。 Minifiers/uglifiers 将在这些 cmets 投入生产之前将其移除,因此它们不会影响性能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-14
        • 1970-01-01
        • 2012-07-14
        • 2010-09-21
        • 1970-01-01
        • 2019-03-22
        • 1970-01-01
        • 2016-10-31
        相关资源
        最近更新 更多