Jquery ajax get请求后不调用success()函数

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

我有一个jquery ajax脚本,如下所示:

     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”)
    。混淆参数是错误的。第一个是来自控制器的方法的名称,第二个参数是控制器的名称
  • 在Ajax调用中,
    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(“员工”、“填写城市”)'