从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与服务器端代码的场景中的智能感知。
答
Javascript intellisense是通过解析脚本本身生成的,因此除非您在脚本(或参考脚本)中内联定义了属性,否则您将看不到智能感知。
如果您想使用intellisense的结构,但最终要通过动态构建提供,那么您可以将它们存储在不同的.js文件中,然后在文件中包含参考标记:
/// <reference path="../xxx.js" />
这将作为客户端中的注释处理,但Visual Studio会在代码中处理它。 Minifiers/uglifiers会在注释生产之前删除这些注释,因此它们不会影响性能。
你有任何更新吗? – Johan