Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javascript移动到单独的文件,ajax调用给出错误消息_Javascript_C#_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

将javascript移动到单独的文件,ajax调用给出错误消息

将javascript移动到单独的文件,ajax调用给出错误消息,javascript,c#,jquery,ajax,asp.net-mvc,Javascript,C#,Jquery,Ajax,Asp.net Mvc,在试图清理代码库时,我将所有javascript从脚本标记移动到了它们自己的javascript文件中。这样做之后,我所有的ajax调用都失败了 这是javascript,这正是它在*.cshtml文件中的方式,不包括脚本标记: $(function () { $("#weightList").change(function () { var weight = $("#weightList").val(); var conference = $("#con

在试图清理代码库时,我将所有javascript从脚本标记移动到了它们自己的javascript文件中。这样做之后,我所有的ajax调用都失败了

这是javascript,这正是它在*.cshtml文件中的方式,不包括脚本标记:

$(function () {
    $("#weightList").change(function () {
        var weight = $("#weightList").val();
        var conference = $("#conference").val();

        $("#wrestlerAList").prop('disabled', true);
        $("#wrestlerBList").prop('disabled', true);

        $.ajax({
            url: '@Url.Action("GetByWeight", "Wrestler")',
            data: {
                weight: weight
            },
            type: 'POST',
            success: function (data) {
                var wrestlers = "<option></option>";

                $.each(data, function (i, wrestler) {
                    wrestlers += "<option value='" + wrestler.Value + "'>" + wrestler.Text + "</option>";
                });

                $("#wrestlerAList").html(wrestlers);
                $("#wrestlerBList").html(wrestlers);

                $("#wrestlerAList").prop('disabled', false);
                $("#wrestlerBList").prop('disabled', false);
            },
            error: function (error) {
                alert("An error occurred retrieving the wrestlers for this weight.");
            }
        });
    });
});
$(函数(){
$(“#权重列表”)。更改(函数(){
变量权重=$(“#权重列表”).val();
var conference=$(“#conference”).val();
$(“#摔跤运动员”).prop('disabled',true);
$(“#列表”).prop('disabled',true);
$.ajax({
url:'@url.Action(“GetByWeight”、“摔跤手”),
数据:{
重量:重量
},
键入:“POST”,
成功:功能(数据){
var摔跤手=”;
$。每个(数据、功能(i、摔跤手){
摔跤手+=“”+摔跤手.文本+“”;
});
$(“#摔跤手”).html(摔跤手);
$(“#摔跤运动员名单”).html(摔跤运动员);
$(“#摔跤运动员”).prop('disabled',false);
$(“#列表”).prop('disabled',false);
},
错误:函数(错误){
警报(“检索此重量的摔跤手时出错。”);
}
});
});
});
我尝试过删除“$(函数(){…}”);”但没有成功。当javascript不直接在cshtml页面上时,是否需要其他语法

编辑:我正在cshtml文件的最后加载javascript文件,就在结束标记之前

还有,我要回404。如果代码保持不变,为什么现在会得到404

 url: '@Url.Action("GetByWeight", "Wrestler")',
该行需要在cshtml页面上呈现。它不会在.js文件中处理


该行需要在cshtml页面上呈现。它不会在.js文件中处理。

问题在于您设置ajax url的方式

url: '@Url.Action("GetByWeight", "Wrestler")'
ASP.NET MVC标记helper@Url.Action()在.js文件中不起作用

您可以将url放在一个隐藏的表单字段中,然后从那里读取它

将其放在.cshtml中的某个位置,最好放在任何表单的外部,这样它就不会因为任何原因被发回表单中

@Html.Hidden("ServiceUrl", Url.Action("GetByWeight", "Wrestler"))
然后使用下面的代码设置jQuery ajax url

url: $('#ServiceUrl').val(),

问题在于设置ajax url的方式

url: '@Url.Action("GetByWeight", "Wrestler")'
ASP.NET MVC标记helper@Url.Action()在.js文件中不起作用

您可以将url放在一个隐藏的表单字段中,然后从那里读取它

将其放在.cshtml中的某个位置,最好放在任何表单的外部,这样它就不会因为任何原因被发回表单中

@Html.Hidden("ServiceUrl", Url.Action("GetByWeight", "Wrestler"))
然后使用下面的代码设置jQuery ajax url

url: $('#ServiceUrl').val(),

错误到底是什么?是否在此脚本之前加载了
jquery
?@VMAtm我将在cshtml文件的最末尾加载javascript页面,就在“”标记之前。另外,看起来它返回了404。错误到底是什么?是否在此脚本之前加载了
jquery
。@VMAtm我在cshtml文件末尾的“”标记之前加载我的javascript页面。另外,看起来它返回了404。谢谢,我只是想编辑我的问题,问javascript文件中是否允许这样做。谢谢你的回答!我很高兴我能帮上忙。哈哈,你真是雄心勃勃,认为@Url.Action即使放在java脚本文件中也能工作。谢谢,我只是想编辑我的问题,问问javascript文件中是否允许这样做。谢谢你的回答!我很高兴我能帮上忙。lol这是你非常雄心勃勃的想法,@Url.Action即使放在java脚本文件中也会起作用。不确定它是否真的引起了我的问题,但我最初在表单标记中添加了这个,但它不起作用(只是返回了页面的整个html内容),只要我将它移到表单标记之外,成功了。但愿我也能接受你的回答!不确定它是否真的导致了我的问题,但我最初在表单标记中添加了这个,但它不起作用(只返回页面的整个html内容),只要我将它移到表单标记之外,它就起作用了。但愿我也能接受你的回答!