Jquery ajax get请求后不调用success()函数
我有一个jquery ajax脚本,如下所示:Jquery ajax get请求后不调用success()函数,jquery,asp.net-mvc,asp.net-mvc-4,Jquery,Asp.net Mvc,Asp.net Mvc 4,我有一个jquery ajax脚本,如下所示: function FillCity() { var stateID = $("#ddlState").val(); $.ajax({ url: '@Url.Action("Employee", "Index")', type: "GET", dataType: "json", data: { state: st
function FillCity() {
var stateID = $("#ddlState").val();
$.ajax({
url: '@Url.Action("Employee", "Index")',
type: "GET",
dataType: "json",
data: { state: stateID },
async: true,
processData: true,
success: function (data) {
alert("SSSS");
},
error: function (data) {
alert("error");
}
});
}
我尝试调用控制器操作方法。数据发送到控制器的动作方法,我也从控制器接收数据
但不幸的是,它调用了error函数而不是success
请找到下面的控制器方法
public ActionResult FillCity(int state)
{
var cities = subbuObject.Cities.Where(c=>c.StateID == state);
return Json(cities, JsonRequestBehavior.AllowGet);
}
在
ajax
调用中,控制器action
的url
路径错误。应该是:
$.ajax({
url: '@Url.Action("YourActionNamne", "YourControllerName")',
type: "GET",
dataType: "json",
data: { state: stateID },
async: true,
processData: true,
success: function (data) {
alert("SSSS");
},
error: function (data) {
alert("error");
}
});
在您的情况下,url
将是:
url: '@Url.Action("FillCity", "Employee")'
url: '@Url.Action("ActionName", "ControllerName", new { Area = "AreaName" })',
如果应用程序中有区域
,则url
将是:
url: '@Url.Action("FillCity", "Employee")'
url: '@Url.Action("ActionName", "ControllerName", new { Area = "AreaName" })',
这里有几件事要做:
@Url.Action(“FillCity”、“Employee”)
。混淆参数是错误的。第一个是来自控制器的方法的名称,第二个参数是控制器的名称dataType
告诉jQuery应该得到什么样的响应。
期待JSON、XML、HTML等等……默认设置是让jQuery尝试解决它async: true, // set to true by default
processData: true, // set to true by default
public class EmployeeController: Controller
{
[HttpGet]
public ActionResult FillCity(int state)
{
var cities = subbuObject.Cities.Where(c=>c.StateID == state);
return Json(cities , "application/json", JsonRequestBehavior.AllowGet);
}
}
public ActionResult FillCity(int state)
{
var cities = subbuObject.Cities.Where(c=>c.StateID == state);
return Json(cities, JsonRequestBehavior.AllowGet);
}
脚本:
<script>
function fillCity() {
var stateID = $("#ddlState").val();
$.ajax({
url: '@Url.Action("FillCity", "Employee")',
type: "GET",
dataType: "json",
data: { state: stateID },
success: function (data) {
alert("SSSS");
},
error: function (data) {
alert("error");
}
});
}
</script>
<script type="text/javascript">
function fillCity() {
var stateID = $("#ddlState").val();
$.ajax({
url: '@Url.Action("FillCity", "Employee")',
type: "GET",
dataType: "json",
data: { state: stateID },
success: function (data) {
alert("SSSS");
},
error: function (data) {
alert("error");
}
});
}
</script>
函数fillCity(){
var stateID=$(“#ddlState”).val();
$.ajax({
url:'@url.Action(“FillCity”、“Employee”),
键入:“获取”,
数据类型:“json”,
数据:{state:stateID},
成功:功能(数据){
警报(“SSSS”);
},
错误:函数(数据){
警报(“错误”);
}
});
}
尝试下面的代码
脚本:
<script>
function fillCity() {
var stateID = $("#ddlState").val();
$.ajax({
url: '@Url.Action("FillCity", "Employee")',
type: "GET",
dataType: "json",
data: { state: stateID },
success: function (data) {
alert("SSSS");
},
error: function (data) {
alert("error");
}
});
}
</script>
<script type="text/javascript">
function fillCity() {
var stateID = $("#ddlState").val();
$.ajax({
url: '@Url.Action("FillCity", "Employee")',
type: "GET",
dataType: "json",
data: { state: stateID },
success: function (data) {
alert("SSSS");
},
error: function (data) {
alert("error");
}
});
}
</script>
什么错误?使用浏览器工具(网络选项卡)确定原因
Action
名称为FillCity
。但在ajax
call中..URL
看起来不同您的操作名称和URL操作名称必须相同。比如:@Url.Action(“Employee”,“FillCity”)
我试过使用@Url.Action(“Employee”,“FillCity”),但仍然收到错误消息only@Subbu,@Url.Action(“Employee”,“FillCity”)
不可能工作-它正在调用FillCityController的Employee()
方法。如果您不添加错误的详细信息,则问题将结束-使用浏览器工具如果我成功从函数中删除数据变量,则触发警报框。如果我将数据变量放在成功函数中,则警报框不会启动,控件将转到错误并启动错误警报框。感谢您的帮助,仍然不会启动成功函数。@Subbu我将为您添加示例。非常感谢。我是mvc的新手,真的无法理解这方面出了什么问题。请帮帮我。@Subbu您的方法名是FillCity
,您正在Ajax中调用不同的url?@Bhushan。。我已经更改了url,但仍然不起作用@Url.Action(“员工”、“填写城市”)'