我在字符串中有一个很长的javascript并以编程方式使用RegisterClientScriptBlock,我将它添加到我的页面。
有没有办法让intellisense在字符串中检测我的javascript?
代码:
string Script0 =
@"
function dummy()
{
}
var PTRValues = new Array();
...
...
..
";
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myCustomScriptBlock", Script0, true);
答案 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。我建议的方法是提高可维护性并防止可能不同步的欺骗脚本:
创建名为myScript.js
的 EMPTY 文件。
创建另一个包含名为myScript-vsdoc.js
将myScript-vsdoc.js
标记为嵌入资源并将其作为embedded web resource
同时,回到IDE中,添加一个指向myScript.js
的脚本标记,这是 EMPTY 文件
按SHIFT-CTRL-J和bingo,您的嵌入式脚本具有智能感知功能,您的嵌入式脚本位于可编辑且可被发现的源文件中,并且您没有重复。
我就是这样做的。