MVC 5 invalid JSON primitive

Je suis en train d'écrire une auto-compléter avec de l'ajax dans MVC5 mais peu importe ce que j'essaie, je reçois le message d'erreur invalid JSON primitive.
Quand je rentre manuellement l'url localhost:5088/GetData?l'inpt a=[requête] je suis capable de voir le retour json.

De ce que je comprends en ligne , je donne le "data:" paramètre incorrect. J'ai essayé de les mettre en "" mais il ne fonctionne pas.

Mon Contrôleur :

  public  JsonResult GetData(string inpt)
        {
            try
            {
                var node = //some values here , cause its too long I deleted it 
                foreach (var node in q)
                {
                    string scity = node.Attribute("CityName").Value.ToUpper(new CultureInfo("tr-TR", false));
                    string ccity = node.Attribute("CityCode").Value;
                    string ccode = node.Attribute("CountryCode").Value;
                    if (ccity != oldcity)
                    {
                        result.Add(new HavaAlani { SehirAdi = scity, HavaAlaniKodu = ccity, HavaAlaniAdi = scity + ", " + ccode, Sehirmi = true });
                        oldcity = ccity;
                    }
                    result.Add(new HavaAlani { SehirAdi = scity, HavaAlaniKodu = node.Attribute("Code").Value, HavaAlaniAdi = node.Value, Sehirmi = false });
                }
            }
            catch
            {

            }

            return Json(result, JsonRequestBehavior.AllowGet);
        }
    }

Mon JS :

    $('input.suggestBox').each(function () {
//$(this).jsonSuggest(air.Lines);
$(this).autocomplete({
source: function (request, response) {
$.ajax({
url: "dataAl/GetData",
data: { inpt: request.term },
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data.d, function (item) {
return {
code: item.HavaAlaniKodu,
value: item.HavaAlaniAdi,
iscity: item.Sehirmi
}
}))
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.responseText);
}
});
},
minLength: 2
}).data("ui-autocomplete")._renderItem = function (ul, item) {
var cls = "airport";
if (item.iscity)
cls = "city";
return $("<li></li>")
.data("item.autocomplete", item)
.append("<span class='span-" + cls + "'></span>")
.append("<a class='ui-autocomplete-" + cls + "'>" + item.value + " (" + item.code + ")" + "</a>")
.appendTo(ul);
};
});
  • Pouvez-vous poster un exemple de l'JSON Retourné?
  • Il n'ya pas de retour JSOn , il donne l'avertissement "invalid JSOn primitive:inpt." Mais il donne l'erreur au format html dans le titre tag de la tête
  • hmm... C'est étrange, je pensais que l'erreur provenait avec jquery, MVC pas. Si vous placez un point d'arrêt dans cette action, il ne semble pas complète? Si non, peut vous montrer aussi où le résultat est déclaré. Aussi essayer de changer de Type de données de texte "json" ou "text/json"
  • Ajouté à répondre - je crois que vous avez besoin de stringify vos données objet.
InformationsquelleAutor Burak Gazi | 2014-03-12