我正在尝试创建以下字符串:
<script runat="server" type="text/C#">
protected void Page_Load(object sender, EventArgs e)
{
Parent.Page.ClientScript.RegisterStartupScript(typeof(Page), "test", "<script type='text/javascript' langauage='javascript' src='test.js'></script>");
}
</script>
但我在VS中遇到编译错误,说“Newline in constant”
答案 0 :(得分:2)
"<script type='text/javascript' langauage='javascript' src='test.js'></script>"
好吧,你的字符串包含&lt; / script&gt;在&lt; script&gt;内元件。这将关闭外部&lt; script&gt;,因此看起来位于runat-server脚本中的代码只是:
protected void Page_Load(object sender, EventArgs e)
{
Parent.Page.ClientScript.RegisterStartupScript(typeof(Page), "test", "<script type='text/javascript' langauage='javascript' src='test.js'>
正如错误所说,它包含一个“没有终止双引号的字符串。
尝试转义字符,以便其他脚本块不会将它们视为标记:
"\x3Cscript type='text/javascript' src='test.js'>\x3C/script>"
答案 1 :(得分:1)
您的问题是结束脚本标记
http://support.microsoft.com/kb/827420
解决问题:
".....<"+"/SCRIPT>"
或者
".....<\/script>"
使用ClientScriptManager并使用RegisterClientScriptInclude。这样,您只需要在字符串中包含文件名。
ClientScriptManager.RegisterClientScriptInclude
ClientScriptManager scriptManager = new ClientScriptManager(); scriptManager.RegisterClientScriptInclude("filename.js");
答案 2 :(得分:-1)
@"<script language="Javascript" src="/utility/thickbox/thickbox-custom.js"></script>"