2

私が取り組んでいるプロジェクトには、多くの JavaScript ファイルがあり、コントローラー アクションへの URL がハードコーディングされているため、いくつかの問題があります。

  1. ハードコーディングされた URL はタイプミスを起こしやすい
  2. 関連するコントローラーまたはアクションの名前が変更されると、JavaScript スクリプトで URL をハードコーディングすると、破損が発生します。
  3. ReSharper のようなツール (私の知る限り) は、それを指す URL がハードコードされている場合、アクションが使用されていないと言う方法を静的に分析できません。

質問

JavaScript でハードコーディングされた URL を使用しないようにするにはどうすればよいでしょうか? - この問題を解決できる既存のフレームワークはありますか?

あなたの洞察を聞くのを楽しみにしています。

ありがとう。

4

1 に答える 1

1

あなたの場合、urlヘルパーを使用してビューからjsコードファイルにurlを渡す必要があります。いずれかのモジュール パターンを使用するように 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" /> 

2 番目の方法 - モジュールのエクスポート:

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>
于 2013-07-01T02:58:07.413 に答える