2012-03-20 47 views

回答

1

移动function的定义出来的部分,并进入一个global\external JavaScript文件:

外部JS

function foo() {   
    /* ... code ... */ 
} 

foo(); 

或(取决于如何定义你可能想要的crea碲foo一个实例):

var bar = new foo(); 
+0

感谢您的回复。我考虑过这个问题,但我想知道是否有另一种方法可以在没有外部文件的情况下完成。 – kerzek 2012-03-20 03:15:41

+0

你可以在***立即执行函数***中执行代码,它将函数的变量封装在它自己的范围内...... – xandercoded 2012-03-20 03:24:21

2

我会强烈建议改变的解决办法,允许一个外部的JavaScript referece。如果这不能完成,那么以下可能会起作用。首先,我会认为你正在做的事情,如:

/Views/Shared/MyModelPartial1.cs/

@model MyModel 

<script type="text/javascript"> 
    var a = "@Model.SomeStringProperty"; 
    var b = @Model.SomeNumberProperty; 
</script> 

<span>Some Html!</span> 

/Views/Shared/MyModelPartial2.cs/

@model MyModel 

<script type="text/javascript"> 
    var a = "@Model.SomeStringProperty"; 
    var b = @Model.SomeNumberProperty; 
</script> 

<div>Different Html Than 1</div> 

如果您试图在两个Partial之间共享此Javascript,请创建另一个可能如下所示的局部视图:

/Views/Shared/MyModelJavascript.cs/

@model MyModel 

<script type="text/javascript"> 
    var a = "@Model.SomeStringProperty"; 
    var b = @Model.SomeNumberProperty; 
</script> 

/Views/Shared/MyModelPartial1.cs/

@model MyModel 

@Html.Partial("MyModelJavascript", Model) 

<span>Some Html!</span> 

/Views/Shared/MyModelPartial2.cs/

@model MyModel 

@Html.Partial("MyModelJavascript", Model) 

<div>Different Html Than 1</div> 
+0

实际上,我只有一个局部视图。它可以在多个视图中使用。我想我会推荐你​​用全球/外部文件来做这件事。 – kerzek 2012-03-20 03:57:16