2015-09-06 70 views
0

使用Visual Studio 2015我創建了一個默認的WEB應用程序,並選擇了MVC。我的腳本沒有在我的MVC 5項目中運行

我在名爲IanScript.js的「scripts」文件夾中創建了一個Javascript文件。

它的內容很簡單:

document.write("hi"); 

我修改了about.cshtml文件,如下所示:

@{ 
ViewBag.Title = "About"; 
} 
<h2>@ViewBag.Title.</h2> 
<h3>@ViewBag.Message</h3> 
@Scripts.Render("~/Scripts/IanScript.js") <!--My addition--> 
<p>Use this area to provide additional information.</p> 

瀏覽器顯示的來源,包括:

<h3>Your application description page.</h3> 
<script src="/Scripts/IanScript.js"></script> 
<!--My addition--> 

但沒有按不呈現文字。

在document.write之前,我嘗試了alert。我只是想讓它做「某事」

如果我在@ Scripts.Render行之後添加下面的行,它會將「ooo」添加到輸出中。

<script>document.write("ooo")</script> 

所以我不明白爲什麼它不會運行包含腳本中的代碼。

回答

0

.js文件中沒有任何內容僅在加載時調用。您可以通過在js文件中定義一個函數並在包含它的文檔中調用它來獲得所需的功能。

function myJSFileFunction(){ 
    console.log("1");//or whatever 
} 

....

@{ 
ViewBag.Title = "About"; 
} 
<h2>@ViewBag.Title.</h2> 
<h3>@ViewBag.Message</h3> 
@Scripts.Render("~/Scripts/IanScript.js") <!--My addition--> 
<p>Use this area to provide additional information.</p> 
<script type="text/javascript"> 
    myJSFileFunction(); 
</script> 
+0

這是有道理的,但如果我去http://plnkr.co/(JavaScript的測試environent),並添加警報( 「你好」);到script.js,它會在默認的html中執行我的警報。在頭標籤中有。 – Ian

+0

我不關心那個網站。如果你在你的程序中包含一個js文件,那麼你必須在它的包裝中調用一個函數。 –

+0

有點尷尬,但我修好了,現在按預期工作。我的腳本被稱爲IansScript,我錯過了其中的一個。所以你實際上不需要將代碼包裝在一個函數中,並調用該函數,它在包含的地方被調用。 – Ian

相關問題