【问题标题】:Added to layout page scripts dont work in ASP.NET MVC 5添加到布局页面脚本在 ASP.NET MVC 5 中不起作用
【发布时间】:2015-03-16 13:06:00
【问题描述】:

在制作我的 ASP.NET 项目时,我遇到了一个问题,即在我的布局页面的“头”部分中编写的脚本无法在渲染视图中使用。 布局页面的内容如下所示:

<!DOCTYPE html>

<html>
<head>
    <link href="/Content/bootstrap.css" rel="stylesheet"/>
    <script src="/Scripts/bootstrap.js"></script>
    <script src="/Scripts/jquery-1.9.1.js"></script>
    <title>@ViewBag.Title</title>
</head>
<body>
    <div class="container-fluid">
        @RenderBody()
    </div>
</body>
</html>

内页包含 Bootstrap 的 Carousel,如果我没有将“脚本”字符串直接放入内页,则它不起作用。 我错过了什么?为什么我不能在布局中添加脚本?

【问题讨论】:

  • jquery.js 必须在 bootstrap.js 之前
  • 另外你没有正确使用路径。尝试 src="@Url.Content("/Scripts/jquery-1.9.1.js")" 或简单地 src="~/Scripts/jquery-1.9.1.js" 用于 javascript 和 css。

标签: jquery html asp.net asp.net-mvc twitter-bootstrap


【解决方案1】:

尽管布局和正文合并为一个页面,但 ASP.NET 仍然认识到布局文件是文件系统中更深的一个节点并相应地生成路径。所以 GSerg 是对的:Added to layout page scripts dont work in ASP.NET MVC 5

【讨论】:

    【解决方案2】:

    不正确。在大多数情况下,它们只需要加载到页面底部的“body”标签上方即可。您尝试操作的 div、id 等不会在这些 js 脚本运行时生成。

    如果您使用的是 MVC 5,那么捆绑是处理 CSS 和 js 的一种更简单的方法,恕我直言。

    【讨论】:

    • 这个答案具有误导性。虽然出于性能的原因可能会建议在页面底部包含脚本块,但仍然必须确保脚本仅执行when DOM is ready,这可以确保正确无论脚本是来自&lt;head&gt; 还是来自页面底部。反过来,捆绑是一个完全独立的概念,不会真正影响上述问题。
    • 一点也不。 Jquery 允许非常简单的 DOM 就绪调用。虽然,我承认捆绑是一个单独的问题,这就是为什么它在一个单独的段落中被适当地记录为一种意见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2016-10-24
    • 2018-07-07
    • 1970-01-01
    相关资源
    最近更新 更多