mvc布局中的jquery脚本无法正常工作

时间:2017-01-11 12:26:36

标签: jquery ajax asp.net-mvc

您好我有一个litle 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)

2 个答案:

答案 0 :(得分:3)

由于.js文件未被asp.net mvc视图引擎解析,因此您根本无法使用任何代码。我建议使用不引人注目的方法,像这样

<div id="loader" data-request-url="@Url.Action("Action", "Controller")"></div>

在javascript中,使用data-request-url的值

$(function(){
   $('#loader').click(function(){
       var url = $(this).data('request-url');
       alert(url);
   });
});

答案 1 :(得分:2)

@ Url.Action(&#34; AjaxTest&#34;,&#34; Home&#34;)仅适用于MVC项目的视图。尝试使用像

这样的确切地址
 url: 'localhost/Home/AjaxTest',

而不是

  url: '@Url.Action("AjaxTest", "Home")',