2009-10-14 27 views
0

我已經將視圖的一些javascript重構到視圖旁邊的.js文件中(而不是在根目錄下的腳本文件夾中)。在ASP.NET MVC中,如何從我的視圖文件夾加載腳本?

默認情況下,在web.config中的視圖處理程序停止這些加載:

<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/> 

不過,我想重寫它,從而讓瀏覽器從這一位置請求.js文件。

有誰知道我該怎麼做?

謝謝, 馬克。

+0

爲什麼不按照慣例使用腳本文件夾?畢竟,javascript並不是一個視圖。 – 2009-10-14 13:35:17

回答

2

我想我會離開這個腳本在腳本中的位置,但如果你想移動它們,你可以做到以下幾點:

在web.config文件的下視圖頂部尋找

<httpHandlers> 
    <add path="*" verb="*" 
     type="System.Web.HttpNotFoundHandler"/> 
</httpHandlers> 

並用以下替換:

<httpHandlers> 
    <add path="*.aspx" verb="*" 
     type="System.Web.HttpNotFoundHandler"/> 
    <add path="*.master" verb="*" 
     type="System.Web.HttpNotFoundHandler"/> 
    <add path="*.ascx" verb="*" 
     type="System.Web.HttpNotFoundHandler"/> 
</httpHandlers> 

你需要添加你想保持阻止每個文件類型的擴展名。

+0

謝謝。是的,我希望避免這種情況... ...恥辱沒有'exclude =「*。js」'公約來幫助我。 – Kram 2009-10-15 15:57:43

1

您可以將路徑屬性更改爲比「*」(所有內容)更全面的內容,但您爲什麼要與框架的約定作鬥爭?視圖文件夾旨在組織(僅)視圖文件,具體而言是而不是,意在直接從外部訪問。有什麼理由不能將你的應用中的腳本文件放在其他地方?

+1

但是,感謝我的視圖的客戶端腳本,這是我視圖的一部分,僅僅因爲我想將它重構爲單獨的文件並不意味着它需要在其他地方生活IMO。摔跤幾個討厭的慣例不分晝夜。 – Kram 2009-10-15 15:55:38

+0

嘿,當然,這是你的項目。看起來似乎也可以爲其他所有網站資源做出相同的論述:其他腳本,圖片,CSS,......您將一直在與框架作鬥爭。但你*可以*做到這一點。 – 2009-10-15 16:32:42

相關問題