首页 > 解决方案 > 使用 Masterpage 在 .NET Web 窗体中设置引用

问题描述

这对许多人来说可能很简单,但对我来说,它仍然是一个巨大的混乱网络。我厌倦了在母版页和普通页上放置引用,所以我只想在这里问。我有一个使用插件的项目,我想在母版页上设置引用,这样普通页面就可以看到这些引用,所以我不需要将它们一一放在每一页上。问题是,我正在这样做,但为什么它不起作用?

例子

这是我的主页

<html>
<head>

<link rel="stylesheet" href="AdminLTE/bower_components/bootstrap/dist/css/bootstrap.min.css" /> 
<link rel="stylesheet" href="AdminLTE/bower_components/font-awesome/css/font-awesome.min.css" />
<link rel="stylesheet" href="AdminLTE/bower_components/Ionicons/css/ionicons.min.css" />
<link rel="stylesheet" href="AdminLTE/dist/css/AdminLTE.min.css" />
<link rel="stylesheet" href="AdminLTE/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css" />
<link rel="stylesheet" href="AdminLTE/dist/css/skins/skin-blue.min.css" />

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

</head>

<body>

<asp:ContentPlaceHolder ID="PageBody" runat="server">
</asp:ContentPlaceHolder>

<script src="AdminLTE/bower_components/jquery/dist/jquery.min.js"></script>  
<script src="AdminLTE/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="AdminLTE/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
<script src="AdminLTE/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>     
<script src="AdminLTE/dist/js/adminlte.min.js"></script>
<script type="text/javascript" src="Scripts/MasterPage/main.js"></script>

</body>  
</html>

在另一个页面中,我正在使用 jquery 表,我将 DataTable 设置为 Table ID

 <script>
     $(function () {
         $.noConflict();
         $("#tblRegistos").DataTable();
     });
</script>

它仍然说它不将 DataTable 识别为函数。顺便说一句,脚本引用是有序的,因为它在页面上有效,但在母版页上无效

编辑

我只是试图将脚本放在母版页的头部并且它有效,但我试图避免这种情况,因为我读到这是一种不好的做法......

标签: asp.net

解决方案


这是因为您在子页面中的脚本标签将在您的文件之前呈现。将脚本标签的 js 内容添加到 .js 文件中,并在 main.js 之后的母版页上引用它们。

<script type="text/javascript" src="Scripts/MasterPage/main.js"></script>
<script type="text/javascript" src="Scripts/OtherPage/otherPage.js"></script>

推荐阅读