无法使用jQuery从控制器获取数据

时间:2019-08-20 21:20:27

标签: c# jquery asp.net ajax asp.net-mvc

我在这里错过了什么吗?我只希望一个警报框在控制器操作中为我提供字符串值。 我在开发工具中不断收到内部服务器错误消息

        public JsonResult Button_Click()
        {
            string cam = "Hello";

            return Json(cam, JsonRequestBehavior.AllowGet);
        }
        $("#hello").click(function () {
            $.ajax({
                url: '/Mycontroller/Button_Click/',
                type: "GET",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    alert(data);
                },
                failure: function () {
                    alert("FAIL");
                },
                error: function () {
                    alert("ERROR");
                }
            });
        });   
    });

我应该只得到一个带有“你好”的警告框。

4 个答案:

答案 0 :(得分:1)

我正在尝试,看来这对我有用:

return new JsonResult(){ Data=cam, JsonRequestBehavior=JsonRequestBehavior.AllowGet };

代替:

return Json(cam, JsonRequestBehavior.AllowGet);

至于一种解释,我还没有人。奇怪的是,使用Post代替Get in Ajax可以很好地完成旧方法。我希望这个对你有用。

答案 1 :(得分:1)

仅写“ My”而不是写“ Mycontroller”。不需要“控制器”后缀。

这应该工作

Javascript:

                $("#hello").click(function () {
                $.ajax({
                    url: '/My/Button_Click/',
                    type: "GET",
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    success: function (data) {
                        alert(data);
                    },
                    failure: function () {
                        alert("FAIL");
                    },
                    error: function () {
                        alert("ERROR");
                    }
                });
            }); 

操作:

public JsonResult Button_Click()
    {
        string cam = "Hello";

        return Json(cam, JsonRequestBehavior.AllowGet);
    }

HTML:

<span id="hello">Click Me</span>

答案 2 :(得分:0)

您的服务器端代码正确,但是在javascript中您添加了额外的花括号,

如果我尝试过并且可以正常工作,请在删除此脚本后删除多余的)};脚本

$("#hello").click(function () {
            $.ajax({
                url: '/Mycontroller/Button_Click/',
                type: "GET",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    alert(data);
                },
                failure: function () {
                    alert("FAIL");
                },
                error: function () {
                    alert("ERROR");
                }
            });
     }); 

我希望它能对您有所帮助。

答案 3 :(得分:0)

    public JsonResult Button_Click()
            {
                string cam = "Hello";

          return Json(new { result = true,data=cam }, JsonRequestBehavior.AllowGet);

            }



      $("#hello").click(function () {
                $.ajax({
                    url: '/Mycontroller/Button_Click/',
                    type: "GET",
                    dataType: "json",
                    contentType:'text/xml; charset=utf-8',
                    success: function (result) {
                          if(result.result==true)
                          {
                            alert(result.data);
                          } 
                    },
                    failure: function () {
                        alert("FAIL");
                    },
                    error: function () {
                        alert("ERROR");
                    }
                });
            });   
        });

you return direct data so your data not display 
my changes help you