在我正在处理的一个项目中,我们遇到了一些问题,我们有很多 JavaScript 文件,我们有硬编码的 URL 到 Controller 操作。
- 硬编码 URL 容易出现错误
- 如果更改相关 Controller 或操作的名称,JavaScript 脚本中的硬编码 URL 将导致中断
- ReSharper 之类的工具(据我所知)无法静态分析表示未使用操作的方式,如果指向它的 URL 是硬编码的话。
问题
我们如何避免在 JavaScript 中使用硬编码的 URL? - 是否有任何现有框架可以解决这个问题?
期待听到您的见解。
谢谢。
最佳答案
在您的情况下,您需要使用 url 帮助程序将 url 从 View 传递到 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>
关于javascript - 使用 ASP.NET MVC 摆脱 JavaScript 中的硬编码字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17394880/