Intellisense - 字符串中的Javascript

时间:2010-02-23 22:13:52

标签: c# javascript intellisense registerclientscriptblock

我在字符串中有一个很长的javascript并以编程方式使用RegisterClientScriptBlock,我将它添加到我的页面。

有没有办法让intellisense在字符串中检测我的javascript?

代码:

string Script0 =
@"
function dummy()
{
}

var PTRValues = new Array();
...
...
..
";

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myCustomScriptBlock", Script0, true);

3 个答案:

答案 0 :(得分:2)

不,你不能在JS字符串中获得intellisense。 IDE不知道这个特定的字符串是JS。

如果长时间不将它放在* .cs文件中。而是将其存储在* .js中。如果你真的想要,可以在运行时将文件加载到内存中,并将其嵌入到html而不是引用中。

答案 1 :(得分:0)

不幸的是,这是不可能的。

最好的解决方案是将代码放在单独的.js文件中,然后编写以下内容:

Page.ClientScript.RegisterClientScriptBlock(
    GetType(), 
    "myCustomScriptBlock", 
    File.ReadAllText(myJSFilePath), 
    true
);

为获得最佳性能,您应该只读取一次,然后将其存储在缓存中。

答案 2 :(得分:0)

好的,这些家伙越来越近了...... 不要 EVER 在代码中嵌入脚本。 始终嵌入资源或进行原型设计和开发使用ClientScript呈现<script/>标记并引用.js文件。

有太多原因,你不希望在代码列表中嵌入脚本。谷歌吧。

你所追求的是通过ClientScript从代码隐藏中渲染一些javascript,你想设计时间intellisense支持吗?

确定, 要获得智能感知,你需要一个某种类型的.js。我建议的方法是提高可维护性并防止可能不同步的欺骗脚本:

  1. 创建名为myScript.js EMPTY 文件。

  2. 创建另一个包含名为myScript-vsdoc.js

  3. 的代码的脚本
  4. myScript-vsdoc.js标记为嵌入资源并将其作为embedded web resource

  5. 投放
  6. 同时,回到IDE中,添加一个指向myScript.js的脚本标记,这是 EMPTY 文件

  7. 按SHIFT-CTRL-J和bingo,您的嵌入式脚本具有智能感知功能,您的嵌入式脚本位于可编辑且可被发现的源文件中,并且您没有重复。

  8. 我就是这样做的。