MVC Partial View 清除脚本 Jquery Ajax



项目:Asp.NET 核心2.1

处理具有侧面导航的仪表板项目,该侧导航分为子侧面等。在右侧有一个"主视图",应该在其中加载部分,因此当选择部分时,它应该在右侧渲染。

我已经完成了所有这些,但是当我有 2 个不同的视图和一些相等的 javascript 时,比如变量,然后我会收到一个重新声明的错误,这是因为加载的最后一个脚本仍然被缓存。有人知道如何解决这个问题吗?

部分变量也在文件中声明而不是分开,也试图分开,但这不起作用。

考虑只是不加载这个Ajax,但我喜欢它的流畅性。

观点1:

<div>
<h1>Hello View1</h1>
<script>
const myVar1 = 'Hello';
</script>
<div>

观点2:

<div>
<h6>Hello View2</h6>
<script>
const myVar1 = 'Hello';
</script>
</div>

错误: 重新声明 myVar1。

提前感谢!

你需要的是一个命名空间。JavaScript 不使用命名空间关键字。取而代之的是闭包。您无法控制变量名称,尤其是当它不是您的代码时。试试这个:

观点1:

<div>
<h1>Hello View1</h1>
<script>
var cl1 = (function(e){
const myVar1 = 'closure 1'; // No public access.
return {
myVar1:myVar1, // Assign public access to cl1.myVar1.
vname:function(){return myVar1; } // or assign it as a getter.
};
})();
</script>
<div>

观点2:

<div>
<h6>Hello View2</h6>
<script>
var cl2 = (function(){
const myVar1 = 'closure 2';
return {
myVar1:myVar1,
vname:function(){return myVar1; }
};
})();
</script>
</div>

测试输出:

<script>
console.log('cl1.myVar1', cl1.myVar1, cl1.vname());
console.log('cl2.myVar1', cl2.myVar1, cl2.vname());
</script>

它导致:

cl1.myVar1 closure 1 closure 1
cl2.myVar1 closure 2 closure 2

最新更新