2014-03-13 26 views
0

在我的ASP.NET MVC4應用程序中,我爲整個網站的功能獲得了1個JavaScript文件。 這工作相當不錯 - 但是我想在某些視圖中運行某些代碼。 通常我會通過在調用所需函數的視圖中添加一個簡短的腳本標記來解決這個問題。 但是我加載我的js文件在body標籤的底部,所以這個腳本標籤在加載之前會調用一個函數,這顯然不起作用。運行特定於視圖的javascript代碼

如何從不同視圖中調用我的js文件的各個部分,同時將我的js文件保留在主體的底部?

+1

在您的腳本引用下的佈局頁面上放置一段,並將您的視圖腳本放入該段 –

回答

1

這裏有幾件事情正在進行。

  1. 我不會把JavaScript直接放在頁面中。很多原因,而不是你的問題的重點,但我想提出的東西。

  2. 你可以有一個單獨的JS文件,在主要的JS文件之後被加載,它實際上調用了來自「main」的函數。

0

我的做法是標籤說,與ID訪問量:

<div id="specific-page-name"></div> 

然後在我的javascript簡單地做:

if ($('#specific-page-name').length) { 
    // Run code 
} 

這樣你仍然可以分開的js代碼,您的看法。

最後,如果我在JS使用的模型數據,我可以這樣做:

<div data-model-data="@Model.Data"></div> 

,簡單地把它讀作:

$('div').data('model-data'); 
0

我詳細馬特給出了答案在他的評論中:在你的佈局中,你可以指定你想要一些額外的HTML內容(在你的情況下,這將是你的JS)。你需要在主JS塊之後添加它。

@RenderSection("AddScripts", required: false) 

然後在您的視圖中,可以添加一節,它不會在視圖中呈現,但在佈局的相應部分(後您的主要JS塊)。

@section AddScripts { 
<script type="text/javascript"> 
... 
</script> 
}