.getjson无法在MVc4中运行

时间:2014-02-21 20:15:54

标签: jquery json asp.net-mvc-4

我已经看到很多关于MVC4中与json相关的堆栈溢出的问题但是无法理解错误的原因 这是我的客户端jquery代码

function Find() {
    var query = $('#bloodgroup').val();
    var text = "<ul>";
    if (query.length == 0)
        text += "<li>Please Select some blood group</li></ul>";
    if (text.length > 5) {
        $('#q').css('color', 'red');
        $('#q').html(text);
        return false;
    }
    $.getJSON("/home/SimpleSearchResult", { q: query })
        .done(function (data) {
            alert(data)
            $.each(data, function (i, item)
            {
            })
        })
        .fail(function (jqxhr, textStatus, error) {
            var err = textStatus + ", " + error;
            alert(err);
        });
}

我的控制器操作方法如下

public JsonResult SimpleSearchResult()
    {
        string query = Request["query"];
        string q=Request["q"];
        var cx = new tempEntities();
        var list = cx.Users.Where(x => x.Blood.Contains(q)).Select(x => new { x.FullName,x.Blood,x.Cell,x.Email}).ToList();
        return this.Json(list,JsonRequestBehavior.AllowGet);
    }

当我调试此代码时,控制器返回的结果成功返回但是在jquery代码中.fail执行回调。无法理解错误的原因。 在这方面请帮助我

2 个答案:

答案 0 :(得分:1)

如果是选项,请尝试使用ajax

$.ajax({
    url: '@Url.Action("SimpleSearchResult", "home")',
    type: 'post',
    cache: false,
    async: true,
    data: { q : query },
    success: function(data){
        console.log(data);
        $.each(data, function (i, item)
        {
        })
    }
});

答案 1 :(得分:0)

你能试试吗?

$.getJSON("/home/SimpleSearchResult", {
    q: 'yourquerystringvaluehere'
}, (function (data) {
    alert(data)
    $.each(data, function (i, item) {
        //do required action
    })
}))
    .fail(function (jqxhr, textStatus, error) {
    var err = textStatus + ", " + error;
    alert(err);
});