asp.net占位符在页面的头部

时间:2010-11-01 10:31:55

标签: asp.net vb.net placeholder

我有一个包含javascript的页面,我只想在某些条件下运行。为此,我将脚本放入asp:占位符

这实际上似乎有效,但当我在页面上运行调试时,我收到以下警告。

元素'占位符'不是已知元素。如果网站中存在编译错误,或者缺少web.config文件,则会发生这种情况。

如果我将占位符移动到页面正文中警告,但这意味着我在身体中留下了脚本,我也想避免。有没有人对这种情况的最佳实践有任何暗示?感谢

Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)

dim lt as new Literal()
lt.text = "<script type='text/javascript' src='scripts/pageLoadAnimations.js'></scr" & "ipt>"
me.Header.Controls.Add(lt)

End Sub

3 个答案:

答案 0 :(得分:3)

您可以直接从代码中包含JS文件:

If (some condition is true) Then
   Page.ClientScript.RegisterClientScriptInclude("jQuery", "jquery-version.js")
End If

答案 1 :(得分:1)

符合您需求的几种方式是:

首先,您可以将<head>代码更改为<head id="header" runat="server">,然后这可以让您动态添加任何内容,例如。

dim lt as new Literal()   
lt.text = "<script type='text/javascript' src='pathtojavascriptfile'></script>"  
me.Header.Controls.Add(lt)

或者您可以在页面上创建一个公共字符串,然后将javascript粘贴在此页面中。

将_JS公开为字符串

的Page_Load

_JS = "alert('here');" ' Or what ever your javascript is

ASPX页面

<head>
    <script type="text/javascript" src="jquery-version.js"></script>
    <script type="text/javascript">
       $().ready(function(){
          <%=(me._JS) %>
       });
    </script>
</head>

答案 2 :(得分:0)

您可以考虑查看ClientScriptManager。这将允许您使用您需要的任何条件正确地将脚本注入标题。

Including Custom Client Script in ASP.NET Pages
ClientScriptManager Class