Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ASP.NET MVC摆脱JavaScript中的硬编码字符串_Javascript_Asp.net Mvc_Hardcoded_Magic String - Fatal编程技术网

使用ASP.NET MVC摆脱JavaScript中的硬编码字符串

使用ASP.NET MVC摆脱JavaScript中的硬编码字符串,javascript,asp.net-mvc,hardcoded,magic-string,Javascript,Asp.net Mvc,Hardcoded,Magic String,在我正在处理的一个项目中,我们遇到了一些问题,在这个项目中,我们有很多JavaScript文件,我们有控制器动作的硬编码URL 硬编码的URL容易出现键入错误 如果相关控制器或操作的名称发生更改,JavaScript脚本中的硬编码URL将导致中断 据我所知,像ReSharper这样的工具不能静态地分析一个动作没有被使用的方式,如果指向它的URL是硬编码的 问题 我们如何避免在JavaScript中使用硬编码URL有没有任何现有的框架可以解决这个问题 期待听到你的见解 谢谢。在您的情况下,您需要使

在我正在处理的一个项目中,我们遇到了一些问题,在这个项目中,我们有很多JavaScript文件,我们有控制器动作的硬编码URL

  • 硬编码的URL容易出现键入错误
  • 如果相关控制器或操作的名称发生更改,JavaScript脚本中的硬编码URL将导致中断
  • 据我所知,像ReSharper这样的工具不能静态地分析一个动作没有被使用的方式,如果指向它的URL是硬编码的
  • 问题

    我们如何避免在JavaScript中使用硬编码URL有没有任何现有的框架可以解决这个问题

    期待听到你的见解


    谢谢。

    在您的情况下,您需要使用url帮助程序从视图向js代码文件传递url。 修改js文件以使用模块模式之一

    第一种方法-导入全局变量:

    js

    看法

    看法

    
    模块('@Url.Action(“Action”,“controller”));
    
    (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>