用户控件如何从内容页的母版页访问Javascript

3
大家好,我有一个问题。我有一个主页面,所有的内容页面都继承自它。在这个主页面中,我有一个指向Javascript文件夹的脚本标签 ~/Scripts/validation.js

在我的内容页面上,我使用不同的用户控件,需要使用validation.js文件中的许多函数,但是如果我不将<script>标签和Javascript函数放在内容页的内容占位符中,用户控件就无法看到这些函数,我会收到诸如OnNameValidation未定义等错误。

当然,我可以将Javascript代码复制到所有页面上,但那是30多个页面,如果我发现其中一个Javascript函数中有一个bug,那将是一个维护噩梦。

因此,问题是(如果你还没有从我的长篇大论中发现)我该如何声明带有路径到validation.js文件的脚本标签,以便内容页面及其用户控件等可以访问函数/代码。

4个回答

0

我目前在我的网站上通过进入主页面的源代码并将以下内容放置在头部和ContentPlaceHolder之外来完成此操作。

<head>
    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>

    <script src="CP.js" type="text/javascript"></script>
</head>

0

我从ScottGu 这里学到了这个技巧。

将以下内容添加到您的用户控件中,以启用用户控件中的Intellisense,但始终计算为false:

<% if (false) { %>
   <script src="/Scripts/validation.js" type="text/javascript"></script>
<% } %>

0

你为js文件分配的路径可能在所有页面上都不匹配。

script src="../JavaScript/Scriptaculous/scriptaculous.js"

如果您为脚本、主控页、页面和控件设置了单独的文件夹,那么它应该类似于上面的内容。

0

你尝试做的应该是可行的,所以我怀疑你的javascript文件路径有误(没有看到你的html代码,我只能猜测)。请记住,如果你在HEAD标签中使用runat="server"链接,你只能像这样引用javascript文件:"~/Scripts/validation.js"。如果没有runat="server",它将无法找到文件。你需要做类似于"../scripts/validation.js"的操作。

作为测试,我建议你在主页面中调用你的javascript函数,这样你就可以排除错误的文件引用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接