如何在asp.Net中的脚本标记上使用runat ="server"

Arm*_*est 14 asp.net relative-path script-tag runatserver

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

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

但是,对于此项目,它不以root身份运行.

我不能加上runat="server"脚本标签.

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

这必须是一个常见的问题,只有一些简单的答案.

Dav*_*vid 20

我一直在做的是使用普通的script标签,并把src<% %>标签,如图所示在这里:

<script language="javascript" src='<%=ResolveUrl("~/App_Themes/MainTheme/jquery.js")%>' type='text/javascript'></script>
Run Code Online (Sandbox Code Playgroud)

  • 对于某些人来说,如果他们得到"控件集合无法修改"异常可能会有帮助的另一个提示是将上述方法包装在<asp:PlaceHolder runat ="server"> </ asp:PlaceHolder>标记中. (5认同)

Jem*_*mes 11

您可以使用ScriptManager:

<asp:ScriptManager ID="ScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Path="~/js/somefile.js" />
        </Scripts>
</asp:ScriptManager>
Run Code Online (Sandbox Code Playgroud)


jas*_*_89 5

您可以通过使用asp:ContentPlaceHolder包装脚本标记来完全获得您想要的内容, 并且您可以从后面的代码中访问它,例如通过将可见属性设置为truefalse来设置它是否被执行。这是示例:

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

和后面的代码:

PrintPreviewBlock.Visible = true;
Run Code Online (Sandbox Code Playgroud)