尝试阅读其他类似的问题,但无法完全检测到我的问题。我试图如下建立一个Ajax调用:返回null的ASP.NET Ajax
$.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);
}
});
它应该发送从获取的文字:
$("#txtSearch").keyup(function() {
var x = $("#txtSearch").val();
现在文本是正确地获取,因此“X”确实有一个值当它提交。但是,一旦上述Ajax请求被处理被调用的方法,它是MapController下的搜索行动被称为带有null参数:
[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);
}
只要标题保持为空我真的不能对它做任何事...感谢解决此问题的任何帮助。
您的建议非常完美!但是现在返回到行动正在工作,但它没有正确返回数据。它说500(内部服务器错误)。我返回的是Json类型的数据,并通过$ .each(data,function(index,value){})运行它。任何想法为什么会这样? – Ben
http://i.imgur.com/ylM9XcO.png要显示通过调试器返回的数据 – Ben
我可以看到,如果使用视图模型,则返回一些域实体到视图。域实体可能包含显然不能被JSON序列化的循环引用。这就是为什么你得到500内部服务器错误。要解决此错误,请停止将域实体传递给视图并将结果投影到视图模型。 –