从代码后面添加JavaScript引用(C#)

Mar*_*tin 10 javascript c# asp.net

是否可以从aspx.cs后面的代码动态添加javascript引用?

像这样:

private void AddScriptReference(string path)
{
   //Add reference to <head></head>
}
Run Code Online (Sandbox Code Playgroud)

应该导致脚本引用添加到页面的头部,如下所示:

<html>
   <head>
      <script type="text/javascript" src="path-to-script.js"></script>
   </head>
</html>
Run Code Online (Sandbox Code Playgroud)

这可能吗?

小智 26

有点迟,但我想在没有其他人需要的情况下给我发一个答案.此解决方案无需使用ScriptManager.

基本上,它只是创建一个控件然后添加到头部的情况.这是代码.

LiteralControl javascriptRef = new LiteralControl("<script type='text/javascript' src='path_to_script.js'></script>");

Page.Header.Controls.Add(javascriptRef);
Run Code Online (Sandbox Code Playgroud)


Mar*_*tin 8

对于那些想要了解语法的人来说,这里是:

母版页:

<asp:ScriptManager ID="ScriptManager" EnablePageMethods="true" runat="server"></asp:ScriptManager>
Run Code Online (Sandbox Code Playgroud)

代码背后:

ScriptReference sr = new ScriptReference("path-to-js.js");
ScriptManager sm = (ScriptManager)this.Master.FindControl("ScriptManager");
sm.Scripts.Add(sr);
Run Code Online (Sandbox Code Playgroud)

要么:

ScriptManager.RegisterClientScriptInclude(this.Page, GetType(), "UniqueID", "path-to-js.js");
Run Code Online (Sandbox Code Playgroud)

但是这些解决方案都没有将脚本添加到页面的头部.


Jan*_*oom 6

您可以使用ASP.NET Ajax ScriptManager这样做.

将其添加到您的母版页,并使用ScriptManager.RegisterClientScriptInclude您的代码隐藏.