VB.NET讨厌字符串文字中的标记

时间:2011-06-24 18:36:50

标签: vb.net

我正在尝试更新我的一些项目旧的登录代码,这是一堆带有内联VB.NET的aspx文件(没有代码隐藏)。

相关页面使用母版页布局。我试图将这个母版页的标题暴露给从属页面,我通过在标题中添加一个占位符并将其作为母版页的属性公开来实现。

当我尝试向标题添加脚本标记时出现问题,如下所示:

Master.Header.Controls.Add(New LiteralControl("<script type='text/javascript' src='http://mysite.com/myscript.ashx'></script>"))

然后我收到错误“只允许内容控件直接在包含内容控件的内容页面中。”

我认为aspx解析器在字符串文字中看到</script>,并认为它是标记的结尾,并且因为它认为该结束标记后面的内容不在块中而给我错误。我可以在标题中添加其他标签。

您怎么看?

2 个答案:

答案 0 :(得分:3)

您可以转义/中的</script>以阻止此操作。

Master.Header.Controls.Add(New LiteralControl("<script type='text/javascript' src='http://mysite.com/myscript.ashx'><\/script>"))

答案 1 :(得分:0)

或者,您可以尝试

Dim gc As New HtmlGenericControl
gc.TagNane = "script"
gc.Attributes.Add("type", "javascript")
gc.Attributes.Add("src", "http://mysite.com/myscript.ashx")
Master.Header.Controls.Add(gc)