将javascript移动到单独的文件中,ajax调用会出现错误
Moved javascript to separate file, ajax calls are giving error
在清理代码库时,我将所有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.");
}
});
});
});
我试过删除"$(function(){…});",但没有成功。当javascript不直接在cshtml页面上时,是否需要其他语法?
编辑:我正在cshtml文件的最后加载javascript文件,就在结束标记之前。
另外,我要回404。如果代码保持不变,为什么现在会得到404?
url: '@Url.Action("GetByWeight", "Wrestler")',
这一行需要在cshtml页面上呈现。它不会在.js文件中处理。
问题在于设置ajax url 的方式
url: '@Url.Action("GetByWeight", "Wrestler")'
ASP。NET MVC标记帮助程序@Url。Action()在.js文件中不起作用。
你可以将url放在一个隐藏的表单字段中,然后从那里读取。
将它放在.cshtml中的某个位置,最好放在任何表单之外,这样它就不会因为任何原因而返回到表单中。
@Html.Hidden("ServiceUrl", Url.Action("GetByWeight", "Wrestler"))
然后使用下面的代码设置jQuery ajax url
url: $('#ServiceUrl').val(),
相关文章:
- 阻止在select2单击时调用ajax
- 调用Ajax并返回响应
- Ajax:只在元素存在的情况下调用Ajax
- PHP,MySQL,AJAX-调用AJAX结果后,Bootstrap CSS样式不会显示
- 调用Ajax内部的函数
- 无法获取属性'的值;拆分'在IE8中调用ajax之后
- 我们如何在Firefox中调用AJAX
- Rails:通过调用Ajax重定向
- Cookie 在 Spotify (Javascript) 中调用 ajax 后未保存
- 通过调用 Ajax 来设置 struts bean 值
- 无法从服务器中的 php 调用 Ajax 函数
- 如何在附加表行时调用 ajax
- 在facebook用户发送邀请请求后调用ajax调用
- 定期调用Ajax
- 调用Ajax生成的表单的值
- 无法调用ajax函数
- 在调用AJAX之后显示ng控制器的内容;作为“;作用
- CSS,Java脚本在php中调用ajax后无法正常工作
- 成功调用AJAX后,Toast Growl不会出现
- 如何在调用AJAX时记录或捕获信息和错误