Versucht, andere ähnliche Fragen zu lesen, aber kann nicht ganz erkennen, was mit meinem falsch ist. Ich versuche, einen Ajax-Aufruf zu bauen, wie folgt:ASP.NET Ajax, das Null zurückgibt
$.ajax({
type: "POST",
url: '@Url.Action("Search", "Map")', // Map Controller, Search Action
data: JSON.stringify({ "Location": x }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var table = "<table class='table'>";
$.each(data, function (index, value) { // For each element in data:
table += "<tr><td>" + value.title + "</td></tr>"; // add it to the table list
var latlng = new google.maps.LatLng(value.latitude, value.longitude);
var marker = new google.maps.Marker({
position: latlng,
map: map
});
gmarkers.push(marker);
});
table += "</table>";
$("#myData").html(table);
}
});
Es soll den Text aus erworbenen senden:
$("#txtSearch").keyup(function() {
var x = $("#txtSearch").val();
der Text richtig, daher ‚x‘ einen Wert hat erworben Jetzt wenn es eingereicht wird. Aber sobald die Ajax-Anforderung oben verarbeitet wird die Methode aufgerufen wird, die die Suchaktion unter dem MapController ist mit einem Null-Parametern aufgerufen:
[HttpPost]
public ActionResult Search (string title)
{
Entities mapEntity = new Entities();
string userId = User.Identity.GetUserId();
var result = mapEntity.Markers.Where(x => x.title.StartsWith(title) && x.UserId == userId).ToList();
return Json(result, JsonRequestBehavior.AllowGet);
}
Solange der Titel null bleibt, kann ich nicht wirklich etwas mit ihm tun ... Schätzen Sie jegliche Hilfe zur Lösung dieses Problems.
Ihre Empfehlung hat perfekt funktioniert! Aber jetzt funktioniert die Rückkehr zur Aktion, aber die Daten werden nicht korrekt zurückgegeben. Es sagt 500 (Interner Serverfehler). Ich gebe diesen JSON-Datentyp zurück und führe ihn durch diesen $ .each (Daten, Funktion (Index, Wert) {}); Irgendeine Idee warum das wäre? – Ben
http://i.imgur.com/ylM9XcO.png Um Daten anzuzeigen, die über den Debugger – Ben
zurückgegeben werden, sehe ich, dass Sie eine Domäne Entity stattdessen an die Ansicht zurückgeben, wenn Sie ein Ansichtsmodell verwenden. Domänen-Entities können zirkuläre Referenzen enthalten, die offensichtlich nicht serialisiert werden können.Deshalb erhalten Sie 500 Interner Serverfehler. Um diesen Fehler zu beheben, müssen Sie keine Domänenobjekte mehr an Ansichten übergeben und das Ergebnis an ein Ansichtsmodell projizieren. –