如何让javascript在Asp.Net中注入到我的布局中的视图中进行渲染

How to get javascript to render in views injected into my layout in Asp.Net?

本文关键字:布局 视图 我的 注入 javascript Asp Net      更新时间:2024-04-29

我正在创建一个简单的网站,使用Asp.NetMVC 4中的单一布局。布局的头部有Javascript标签,如下所示:

<script src=@Url.Content("/Scripts/jquery.min.js")></script>
<script src=@Url.Content("/Scripts/jquery.dropotron.min.js")></script>
<script type="text/javascript" src=@Url.Content("/Scripts/jquery.slidertron.min.js")></script>
<script src=@Url.Content("/Scripts/skel.min.js")></script>
<script src=@Url.Content("/Scripts/skel-layers.min.js")></script>
<script src=@Url.Content("/Scripts/init.js")></script>

当我第一次加载网站/页面时,这会很好。

该项目使用典型的URL/Home/Index路由作为默认路由,但当我通过在URL中添加"/Home/Inindex"来显式调用该路由时,页面将在没有任何样式的情况下呈现。除了主页之外的任何页面在加载时都是不带样式的,即使它们都只是在头部使用相同的Javascript注入到相同布局中的视图。

有什么想法为什么Javascript没有在我的所有视图中呈现吗?

唯一真正导致这种情况的是使用相对URL来引用文件。当只加载没有路径的域时,类似Scripts/foo.js的引用将在URL:http://domain.com/Scripts/foo.js处正确检索。然而,对于像/Home/Index这样的路径,URL就会变成http://domain.com/Home/Index/Scripts/foo.js,这显然是不正确的。

然而,在您的情况下,您并没有使用完全相对的路径,因为每个路径都以/为前缀,应该使其始终从站点根目录引用,而不管当前的URL路径如何。如果我们假设你直接从你的项目中复制并粘贴了这个,我有点不知道你怎么会遇到这个问题。首先,验证您在这里发布的代码实际上是您布局中的代码。然后,确保视图使用了正确的布局,并且您已经做了一些愚蠢的事情,比如保存了文件,以防最近进行了更改。除此之外,请尝试在浏览器中进行硬刷新和/或清除缓存,以确保它不会简单地加载过时的页面。