2012-03-12 29 views
0

我想爲每個版本更新JavaScript文件。所以,我需要將版本號添加到我正在使用的JavaScript文件中,並且我想從web.config文件中提供版本號。如何更新來自Razor的版本號參數的JavaScript文件

我在web.config中添加了一個鍵:

<add key="VersionNumber" value="1"/> 

我有一個js文件爲:

<script src="~/Scripts/Utilities/DashBoard.js" type="text/javascript"></script> 

我知道我們可以給「版本號」 JS文件像:

<script src="~/Scripts/Utilities/DashBoard.js?version="**data**""  type="text/javascript"></script> 

在asp.net MVC3剃刀我們可以從web.config中的javascript中獲取的價值爲:

var VersionData = "@System.Configuration.ConfigurationManager.AppSettings["VersionNumber"].ToString()"; 

但我有一個混淆如何將這個「VersionData」放在上面的腳本行的「數據」。

而且我在頁面加載函數中給了這個VersionData。這是對的嗎?

當我改變了每一個版本將更新它.js文件的版本號。任何人都可以幫我找到解決方案嗎?

回答

0

嘗試使用從System.Web.Configuration命名空間而不是WebConfigurationManager類。

string versionNumber = WebConfigurationManager.AppSettings["VersionNumber"].ToString() 

爲了使用版本參數在你的.js庫,我建議你通過一個對象傳遞你的論點。

在DashBoard.js

var MYSCRIPT = MYSCRIPT || (function(){ 
    var _args = {}; 

    return { 
     init : function(Args) { 
      _args = Args; 
     }, 
    returnValue : function() { 
      alert(_args[0]); 
     } 
    }; 
}()); 

你的剃鬚刀頁

<script type="text/javascript" src="~/Scripts/Utilities/DashBoard.js"></script> 
<script type="text/javascript"> 
    MYSCRIPT.init(["versionNumber", @versionNumber]); 
</script> 

訪問值(無論是在您的網頁或JS)

MYSCRIPT.returnValue(); 

我會建議創建自己的Html幫助程序以從您的web.config中獲取活動腳本名稱。

+0

好的謝謝你的迴應。但如何將這個versionNumber放在.js腳本文件中..我在index.cshtml中有這個.js腳本文件 – 2012-03-12 09:55:03

+0

我添加了一個如何使用名稱空間將此參數傳遞給.js文件的示例。我希望這可以幫助你。 – Nick 2012-03-12 09:59:17

相關問題