gpt4 book ai didi

javascript - 外部化脚本时如何在 javascript 中生成正确的 URL

转载 作者:行者123 更新时间:2023-11-29 20:11:42 25 4
gpt4 key购买 nike

我正在开发 ASP.NET MVC3 应用程序。我在不同的地方阅读了关于 Javascript 的良好做法,并决定最好将位于 View 底部的 <script/> 标记中的 javascript 和 jQuery 调用外部化。

我将每个 View 的 Javascript 放在一个具有标准化命名约定的单独文件中,这样我就可以生成 <script/> 标记以将适当的文件包含在我的布局 View 中。

但它正处于过于复杂而无法维护的边缘,我遇到了一个破坏整个方案的问题,即偶尔需要将 URL 插入到 javascript 中。

例如:如果我正在进行 $.getJSON 调用,我需要提供一个 URL。我一直在服务器端生成它们,在 View 中,使用 UrlHelper 类,如下所示:

var _RegistrationSelectClassUrl = '@Url.Action("SelectClass", "Student", new { area = "Registration", id = Model.Person.PersonID })';

这很好用……直到我将 javascript 外部化。不再是 View 的一部分,对 UrlHelper 的调用再次只是字符串。

所以我的问题是:如果我坚持使用外部化的 javascript,我需要一种方法来插入或生成适当的 URL。除了在布局文件中使用 UrlHelper 为我可能想要使用的每个 URL 定义常量的脚本部分之外,我想不出一个好的。

有什么建议吗?

最佳答案

外部 JS:

var namespace = {
init: function (url) {
this._RegistrationSelectClassUrl = url;
},
_RegistrationSelectClassUrl: ''
};

查看:

<script src="external/js.js" />
<script>
namespace.init('@Url.Action("SelectClass", "Student", new { area = "Registration", id = Model.Person.PersonID })');
</script>

这是一个基本示例。

关于javascript - 外部化脚本时如何在 javascript 中生成正确的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9266174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com