2011-01-27 58 views
12

我在我的'master'cshtml文件中獲取我引用的.js文件以通過'child'cshtml文件。Razor中的Javascript Intellisense查看引擎子頁面

我有主文件中這樣的事情,所以.js文件始終得到引用(實際上我得到的主文件中的JS智能感知):

if (false) 
{ 
    <script type="text/javascript" src="../scripts/jquery.js"></script> 
} 

然而,當我引用master.cshtml文件在'孩子'頁面是這樣的:

@{ 
    Layout = "~/Views/Shared/master.cshtml"; 
} 

我沒有得到任何JavaScript intellisense。我真的不希望將腳本標籤放在每個子頁面的頂部,有很多腳本標籤和很多子頁面!

回答

1

我也希望找到解決方案。

我發現的最佳選擇是始終使用外部js文件。創建一個類似Master.js的文件,使用參考路徑:

/// <reference path="../../Scripts/jquery-1.4.4.js"/> 

然後,您可以擁有智能感知。您需要在新的外部文件之前包含jquery文件。

5

Razor編輯器現在無法推斷出哪些腳本文件正在使用(這是因爲Razor佈局頁面是通過代碼設置的,編輯器不會執行視圖頁面)。不幸的是,如果您希望JavaScript IntelliSense能夠在您的視圖頁面中工作,您將不得不包含這些腳本標記。

0

所以你不會失去推測爲什麼招不工作的時候,這可能是有用的:

如果使用相對路徑,這似乎只工作如果路徑指向同應用。只要引用的腳本文件是在同一個應用

reference path="../../Scripts/jquery-1.4.4.js" 

上述工作:絕對路徑顯然適用於所有情況。

reference path="http://localhost/Scripts/jquery-1.4.4.js" 

以上似乎無論如何工作。