整个网站都是一个Ajax网站,因此我的视图(除了Layout)可以通过标准方式加载或通过ajax actionlink加载。如果我将Javascipt文件与部分视图放在一起,那么所有代码都将按预期工作,但脚本会被多次加载(因此使用户下载更多脚本,所有这些脚本都没有被缓存)。
如果我将脚本文件放在我的Layout中,那么它们只会被加载一次,但如果加载了部分视图,则该部分视图的JS代码显然不起作用,因为在呈现部分视图之前已经加载了脚本。
我的问题是,如何使脚本仅加载一次,但也以某种方式影响部分视图?
Index视图:
如果脚本在局部视图中,您会看到它们被多次加载:
如果我将脚本文件放在我的Layout中,那么它们只会被加载一次,但如果加载了部分视图,则该部分视图的JS代码显然不起作用,因为在呈现部分视图之前已经加载了脚本。
我的问题是,如何使脚本仅加载一次,但也以某种方式影响部分视图?
Index视图:
<script src="/Scripts/Build/module.min.js"></script>
<script src="/Scripts/Build/upload-index.min.js"></script>
布局:
<li>
@Ajax.ActionLink("Upload", "Index", "Upload", new {Area = "Music"}, new AjaxOptions {HttpMethod = "GET", UpdateTargetId = "body-wrapper", InsertionMode = InsertionMode.Replace, OnSuccess = "updateHistory", AllowCache = true }, new {@class = "nav-link"})
</li>
如果脚本在局部视图中,您会看到它们被多次加载:
![enter image description here](https://istack.dev59.com/hTMe2.webp)
.on()
处理部分中的元素事件)。 - user3559349.on()
。我正在我的视图中使用dropzone插件,并且它在加载时就会绑定。我需要另一种方法。 - Martin Dawson$(someElementYouJustAdded).dropzone({ .... });
。 - user3559349class="dropzone"
,则使用$('.dropone:last').dropzone();
。 - user3559349