2012-03-20 73 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