【发布时间】:2017-01-11 12:26:36
【问题描述】:
嗨,我有一个小 jquery 脚本
$(document).ready(function () {
$.ajax({
url: '@Url.Action("AjaxTest", "Home")',
})
});
当我将它直接包含在我的 MVC 应用程序的布局页面中时,它会按我的预期工作。当我尝试从外部文件(infoAjax.js)调用它时,它失败并且我收到消息:加载资源失败:服务器响应状态为 404(未找到)。我的捆绑文件:
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js",
"~/Scripts/infoAjax.js"
));
以及布局页面的负责部分:
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
【问题讨论】:
-
@Url.Action 在 JS 文件中不起作用。那是 Razor 语法,所以它必须在视图中。如果您在从外部文件运行它时查看网络选项卡,您可能会发现它正在尝试像 http://@Url.Action("AjaxTest", "Home") 这样的字面意思调用 URL,而不是将其解析为真正的 URL,如果它在一个 cshtml 文件中就会这样做。
标签: jquery ajax asp.net-mvc