gpt4 book ai didi

jquery - 我可以将 ASP.NET 放在 Js 文件中吗?

转载 作者:行者123 更新时间:2023-12-01 06:31:38 26 4
gpt4 key购买 nike

我正在执行 ajax“发布”操作,我需要计算出操作的 URL。

为此,我正在使用

   var url = '<%= Url.Action("Action", "Controller") %>';

但是这段代码位于一个相当大的 Js 文件中,该文件正在加载到我的 MVC View 中。我不想把它全部移到我的视野中,因为它太大并且看起来很乱。

我尝试将 JS include 设置为 runat="server"但出现错误。

<script runat="server" src="<%: ResolveUrl("~/Scripts/Custom/MyScript.js")%>" type="text/javascript" ></script>

这可以做到吗?

谢谢,科汉

最佳答案

不,您不能将 ASP.NET 放入 JavaScript 文件中。 Javascript 文件是静态资源,应由您的 Web 服务器直接提供服务。它们不应该包含任何服务器端语言。您可以将 url 定义为 View 中的全局变量:

<script type="text/javascript">
var url = '<%= Url.Action("Action", "Controller") %>';
</script>

然后在您的 javascript 文件中使用此 url 变量。

请注意,根据您使用此变量执行的操作,可能有更好的方法。例如,假设在您的 View 中您有一个想要 ajaxify 的 anchor :

<%: Html.ActionLink("some text", "actionName", new { id = "fooAnchor" }) %>

然后在你的 JavaScript 中你可以:

$(function() {
$('#fooAnchor').click(function() {
$('#result').load(this.href);
return false;
});
});

所以根本不需要声明任何变量。另一种选择是定义一个带有参数的 JavaScript 函数,以便您可以传递您需要的任何内容。

结论:将您的 javascript 文件视为可重用组件,明天您可能会将其插入到基于 Java Servlet 的超酷网站中,并将它们托管在 CDN 上。您甚至可以尝试将它们转换为 reusable jQuery plugins 。不要尝试将其与服务器端语言混合,因为它会导致强耦合、丑陋的代码 - 标签汤。

关于jquery - 我可以将 ASP.NET 放在 Js 文件中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3213202/

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