从JavaScriptSerializer生成JavaScript时的Visual Studio Intellisense

问题描述:

使用JavaScriptSerializer创建客户端对象时,在Visual Studio 2010中获取JavaScript Intellisense的正确方法是什么?从JavaScriptSerializer生成JavaScript时的Visual Studio 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完整的IntelliSense支持。

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

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

等待VSNext或某个可以启用此类场景的补丁。目前不支持混合javascript与服务器端代码的场景中的智能感知。

+2

你有任何更新吗? – Johan

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

如果您想使用intellisense的结构,但最终要通过动态构建提供,那么您可以将它们存储在不同的.js文件中,然后在文件中包含参考标记:

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

这将作为客户端中的注释处理,但Visual Studio会在代码中处理它。 Minifiers/uglifiers会在注释生产之前删除这些注释,因此它们不会影响性能。