簡體   English   中英

在我的asp.net-mvc文件中,如何將JavaScript移至單獨的js文件?

[英]In my asp.net-mvc file, how can I move my javascript to a seperate js file?

我的視圖中有一堆JavaScript,並且它變得越來越大,因此我想將其移動到單獨的js文件中。 我有一個問題是我有這條線:

 var tags = <%= new JavaScriptSerializer().Serialize(Model.Tags) %>;

我顯然不能僅僅復制它,因為它具有服務器端的asp.net-mvc標記。 建議的處理方式是:

  1. 將此函數保留在aspx頁面中,並讓來自單獨js文件的javascript調用該函數嗎?

  2. 其他??

您可以做的是讓一個JavaScript對象包含您從控制器獲取的所有信息,並將其通過位於外部javascript文件中的javascript函數傳遞。 您還可以通過options變量傳遞其他信息。

例:

 var options = {
    tags: <%= new JavaScriptSerializer().Serialize(Model.Tags) %>
 };
 initPage(options);

用法:

function initPage(options) {
    console.log(options.tags);
}

這在很大程度上取決於您要使用它的方式和重復的程度。

一些想法:

  1. tags是靜態的。 然后,我認為實際上並不需要加入模型中。 因此,您可以將它們移動到新的Controller操作中,該操作將輸出scipt。 您可以在視圖的<script>部分中調用此操作。
  2. tags變化非常頻繁(甚至在每次加載頁面時)。 因此,將其移動到單獨的腳本文件中沒有任何好處。

如果您使用適當的閉包設置了javascript文件,則可以在調用該函數時公開用於傳遞該信息的屬性(或更好的是,該對象/方法的參數)。

您的Javascript必須是這樣的:

var JsFile = (function() {
    var tags;
    // list all of your methods here.

    return {
        var setTags = function(_tags) {
            tags = _tags;
        }
    };
})();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM