1

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

有什么方法可以让智能感知在字符串中检测到我的 javascript?

代码:

string Script0 =
@"
function dummy()
{
}

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

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

3 回答 3

2

不,您无法在 JS 字符串中获得智能感知。IDE 不知道这个特定的字符串是 JS。

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

于 2010-02-23T22:15:36.853 回答
0

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

你不想在代码中嵌入脚本来列出的原因太多了。去谷歌上查询。

您所追求的是通过 ClientScript 从代码隐藏中呈现一些 javascript,并且您想要设计时智能感知支持?

好的,要获得智能感知,您将需要某种.js。我建议的方法是:提高可维护性并防止可能不同步的重复脚本:

  1. 创建一个名为myScript.js.

  2. 创建另一个包含您的代码的脚本,名为myScript-vsdoc.js

  3. 标记myScript-vsdoc.js为嵌入式资源并将其用作嵌入式网络资源

  4. 同时,回到 IDE 中,添加一个指向 的脚本标签myScript.js,这是一个EMPTY文件

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

我就是这样做的。

于 2010-02-26T00:59:39.237 回答
0

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

最好的解决方案是把代码放在单独的.js文件中,然后写如下:

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

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

于 2010-02-23T22:16:07.880 回答