代码之家  ›  专栏  ›  技术社区  ›  Armstrongest

如何在ASP.NET中的脚本标记上使用runat=“server”

  •  13
  • Armstrongest  · 技术社区  · 15 年前

    我不需要在服务器上运行它,但是,我想使用 ~/js/somefile.js 语法。

    以前,我只是用绝对路径设置所有内容,并将我的项目设置为根级别。所以,我只需声明我所有的样式表、背景图像和javascript文件,比如 /css/somefile.css

    但是,对于这个项目,它不作为根目录运行。

    我放不下 runat="server" 在脚本标记上。

    不过,我可以把它放在链接标签上。

    这是一个常见的问题,只有几个简单的答案。

    5 回复  |  直到 13 年前
        1
  •  19
  •   Armstrongest    15 年前

    我一直在做的就是用普通的 script 标记并放置 src 在里面 <% %> 标签,如图所示 here :

    <script language="javascript" src='<%=ResolveUrl("~/App_Themes/MainTheme/jquery.js")%>' type='text/javascript'></script>
    
        2
  •  11
  •   Jemes    15 年前

    您可以为此使用脚本管理器:

    <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Scripts>
                <asp:ScriptReference Path="~/js/somefile.js" />
            </Scripts>
    </asp:ScriptManager>
    
        3
  •  3
  •   Rup    15 年前

    但是,您可以在路径字符串中使用函数,例如

    <script type="text/javascript"
            src="<%=Url.Content("~/Scripts/jquery-1.4.2.min.js") %>"></script>
    

    不过,这是本地路径的ASP.NET MVC语法——我记不清表单版本了。

        4
  •  2
  •   jasin_89    13 年前

    通过将脚本标记包装在 ASP:内容占位符 您可以从代码隐藏中访问它,例如,通过设置是否执行它 看得见的 属性到 . 示例如下:

        <asp:ContentPlaceHolder runat="server" ID="PrintPreviewBlock" Visible="false">
        <script id="PrintPageCall" type="text/javascript" >
            $(function() {
                window.print();
            });
        </script>
    </asp:ContentPlaceHolder>
    

    从代码背后看:

    PrintPreviewBlock.Visible = true;
    
        5
  •  1
  •   palswim    15 年前

    取自 dailycoding.com :

    <script language="javascript" src="<%=ResolveUrl("~/[PATH]")%>" type="text/javascript"></script>