2013-06-30 107 views
1

我們正在處理的項目中存在一些問題,我們有很多JavaScript文件,我們在其中編寫了硬編碼的URL到控制器操作。使用ASP.NET MVC擺脫JavaScript中的硬編碼字符串

  1. 硬式編碼的網址是proned以打錯在JavaScript腳本
  2. 硬編碼的網址會導致破損,如果相關的控制器或動作的名稱,改爲
  3. 工具,比如ReSharper的(據我所知)不能靜態地分析它的如果指向它的URL是硬編碼的,則表示不使用該操作的方式。

問題(S)

我們怎樣才能避免在JavaScript中使用硬編碼的網址嗎? - 有沒有可以解決這個問題的現有框架?

期待聽到您的洞察。

謝謝。

回答

1

在你的情況下,你需要使用url助手將URL從視圖傳遞給js代碼文件。 修改您的js文件以使用模塊模式之一。

第一種方式 - 進口全局變量:

JS

(function (url) { 
    // your code 
}(external_url)); 

視圖

<script type="text/javascript"> 
    var external_url = '@Url.Action("action", "controller")'; // define global variable `external_url` with helper. This should be defined before script run. 
</script> 
<script type="text/javascript" src="jsfile.js" /> 

方式二 - 輸出模塊:

var module = (function (url) { 
    // your code 
}(external_url)); 

視圖

<script type="text/javascript" src="jsfile.js" /> 
<script type="text/javascript"> 
    module('@Url.Action("action", "controller")'); 
</script>