Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc jQuery自动完成不使用Json数据_Asp.net Mvc_Json_Jquery Plugins_Autocomplete - Fatal编程技术网

Asp.net mvc jQuery自动完成不使用Json数据

Asp.net mvc jQuery自动完成不使用Json数据,asp.net-mvc,json,jquery-plugins,autocomplete,Asp.net Mvc,Json,Jquery Plugins,Autocomplete,有一大堆教程在那里解释如何做到这一点,例如和 看起来很容易啊?然而,我还是设法在这上面浪费了半天时间,却什么也没做 下面的方法绝对有效 public ActionResult FindStuff(string q) { return Content("test"); } $('#MyTextBox').autocomplete("MyController/FindStuff", { parse: function(data) { alert('parsing')

有一大堆教程在那里解释如何做到这一点,例如和

看起来很容易啊?然而,我还是设法在这上面浪费了半天时间,却什么也没做

下面的方法绝对有效

public ActionResult FindStuff(string q)
{
    return Content("test");
}

$('#MyTextBox').autocomplete("MyController/FindStuff", {
    parse: function(data) {
        alert('parsing');
    }
});
如果我把它改成以下,绝对不会发生任何事情

public JsonResult FindStuff(string q)
{
    return Json(new { name = "test" });
}

$('#MyTextBox').autocomplete("MyController/FindStuff", {
    dataType: 'json', // I've also tried with this line commented out
    parse: function(data) {
        alert('parsing');
    }
});
因此,
parse
调用似乎从未被命中,也就是说,我假设数据负载不知何故爆炸,或者认为没有数据。有什么想法吗?谢谢


p、 这是Jorn Zaefferr插件。

确保您返回了一个数组,并且允许GET请求(如果您使用的是ASP.NET MVC 2.0):

然后按照下面的例子:

$('#MyTextBox').autocomplete("MyController/FindStuff", {
    dataType: 'json',
    parse: function (data) {
        var rows = new Array();
        for (var i = 0; i < data.length; i++) {
            rows[i] = { data: data[i], value: data[i].name };
        }
        return rows;
    },
    formatItem: function (row, i, n) {
        return row.name;
    }
});
$(“#MyTextBox”).autocomplete(“MyController/FindStuff”{
数据类型:“json”,
解析:函数(数据){
var rows=新数组();
对于(变量i=0;i
效果很好


备注:有助于快速诊断问题,因为它准确地显示了发送的AJAX请求以及它们成功或失败的原因。

这就是FireBug非常有用的原因。您会立即发现错误。
$('#MyTextBox').autocomplete("MyController/FindStuff", {
    dataType: 'json',
    parse: function (data) {
        var rows = new Array();
        for (var i = 0; i < data.length; i++) {
            rows[i] = { data: data[i], value: data[i].name };
        }
        return rows;
    },
    formatItem: function (row, i, n) {
        return row.name;
    }
});