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

发布于 2024-09-15 03:15:36 字数 310 浏览 6 评论 0 原文

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

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

但是,对于这个项目,它不会以 root 身份运行。

我无法将 runat="server" 放在脚本标记上。

不过,我可以将其放在链接标签上。

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

I don't necessarily need to run it at server, however, I would like to use the ~/js/somefile.js syntax.

Previously, I had just set everything with Absolute paths and set my project to be at the root level. SO, I'd just declare all my stylesheets, background images and javascript files something like /css/somefile.css

However, for this project, it doesn't run as root.

I can't put runat="server" on a script tag.

I can put it on a link tag, though.

This must be a common problem with a few simple answers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

你怎么敢 2024-09-22 03:15:37

我一直做的就是使用普通的 script 标签并将 src 放在 <% %> 标签中,如图所示 此处

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

What I've always done is use a normal script tag and put the src in <% %> tags, as illustrated here:

<script language="javascript" src='<%=ResolveUrl("~/App_Themes/MainTheme/jquery.js")%>' type='text/javascript'></script>
够钟 2024-09-22 03:15:37

您可以使用 ScriptManager 来执行此操作:

<asp:ScriptManager ID="ScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Path="~/js/somefile.js" />
        </Scripts>
</asp:ScriptManager>

You can use the ScriptManager for this:

<asp:ScriptManager ID="ScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Path="~/js/somefile.js" />
        </Scripts>
</asp:ScriptManager>
蓝海 2024-09-22 03:15:37

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

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

以及后面的代码:

PrintPreviewBlock.Visible = true;

You can get fully what you want by wrapping script tag with asp:ContentPlaceHolder
and the you can access it from code behind, for example set will it be executed or not by setting visible property to true or false.
Here is the example:

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

and from code behind:

PrintPreviewBlock.Visible = true;
新人笑 2024-09-22 03:15:37

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

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

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

You can use functions inside the path string, though, e.g.

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

However that's the ASP.NET MVC syntax for local paths - I can't remember the forms version off the top of my head.

黎歌 2024-09-22 03:15:37

摘自 dailycoding.com

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

Taken from dailycoding.com:

<script language="javascript" src="<%=ResolveUrl("~/[PATH]")%>" type="text/javascript"></script> 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文