在使用主文件的aspx页面中放置外部.js文件的位置

时间:2011-11-04 17:10:35

标签: javascript asp.net-mvc-3

我有一个从主页面模板继承的aspx页面。通常,我会将链接放在html页面的<head>元素内部的外部javascript文件中,但<head>元素位于母版页中。

我应该将引用放在外部.js页面上?

如果我尝试在<script>元素下方添加<%@ Page %>标记,则会收到一些错误消息,说我必须在<asp:content>个部分中放置标记。

由于

4 个答案:

答案 0 :(得分:0)

将其放在内容页面的其中一个内容面板中,例如

 <asp:content runat="server" id="content1" contentplaceholderid="cp1">
     <script type="text/javascript" src="somepath"></script>
    </asp:content>

答案 1 :(得分:0)

在母版页的标题中创建占位符,并将脚本添加到页面上的占位符。

站长:

<head runat="server">
    <title>My Appplication</title>
    <asp:ContentPlaceHolder ID="HeaderContent" runat="server" />
</head>

页:

<asp:Content ID="PageHeaderContent" ContentPlaceHolderID="HeaderContent" runat="server">
    <script type="text/javascript" src="somejsfile.js"></script> 
</asp:Content>

答案 2 :(得分:0)

我假设您希望子页面上的脚本,而不是主页面模板中的脚本。在这种情况下,您需要在母版页的<head>元素中添加内容占位符。然后使用子页面上的<asp:content>标记,并将引用放在外部javascript中。如果您的母版页在其<head>代码中已有内容占位符,我不会感到惊讶。

答案 3 :(得分:0)

在您的母版页<body> .. <form> ..内添加asp:ScriptReference标记到您的asp:ScriptManager不在内容中

<form id="form1" runat="server">
    <asp:ScriptManager ID="scripty" runat="server">
        <Scripts>
            <asp:ScriptReference Path="~/Scripts/Timer/myJsFile.js"></asp:ScriptReference>
        </Scripts>
    </asp:ScriptManager>

如果您想从客户端引导它,则需要在页面的<body>content中添加:

<script>
    window.onload: start;
</script>

或者,对于需要它的每个页面aspx.cs,我在服务器端使用它:

Page.ClientScript.RegisterStartupScript(GetType(), "Start", "window.onload=Start;", true);

我的javascript文件中的位置:

function Start() {
...
}

提示:ScriptManager被大型Js库广泛使用,如jQuery。

在您的javascript中,如果您安装了jQuery,则可以使用ClientIDMode="Static"在母版页内调用任何具有$("#nameOfObject")的ASP对象。

如果上述过程适用于内容页面,我不确定,因此该对象可能必须位于母版页上。