在jquery自动完成中解析JSON
在自动完成框中输入键时,我将以JSON格式从MVC控制器返回键、值对在jquery自动完成中解析JSON,jquery,json,asp.net-mvc-3,asp.net-mvc-4,jquery-autocomplete,Jquery,Json,Asp.net Mvc 3,Asp.net Mvc 4,Jquery Autocomplete,在自动完成框中输入键时,我将以JSON格式从MVC控制器返回键、值对 public ActionResult UserNameAutoComplete(string term) { DBEntities db = new DBEntities(); ...codes to get data from database jsonString += jSearializer.Serialize(userList); return Json(jsonString,
public ActionResult UserNameAutoComplete(string term)
{
DBEntities db = new DBEntities();
...codes to get data from database
jsonString += jSearializer.Serialize(userList);
return Json(jsonString, JsonRequestBehavior.AllowGet);
}
重新运行的Json字符串是[{“UserId”:“1”,“UserName”:“admin”},{“UserId”:“3”,“UserName”:“newtonsheikh”}]
在我看来,我得到了这个
jquery是
$("#Username").autocomplete({
source: '@Url.Action("UserNameAutoComplete")'
});
我的问题是如何解析这个返回的json?预期产量为
您试图序列化数据集两次。 你需要使用
return Json(jsonString, JsonRequestBehavior.AllowGet);
没有(!)jSerializer
或者,如果要使用序列化程序执行此操作,请尝试仅返回序列化数据集的内容
jsonString += jSearializer.Serialize(userList);
return Content(jsonString);
您正在尝试序列化数据集两次。 你需要使用
return Json(jsonString, JsonRequestBehavior.AllowGet);
没有(!)jSerializer
或者,如果要使用序列化程序执行此操作,请尝试仅返回序列化数据集的内容
jsonString += jSearializer.Serialize(userList);
return Content(jsonString);
解决了这个问题。我不得不更改我的jquery代码。无需更改返回json字符串的代码
$("#Username").autocomplete({
select: function (e, ui) {
$("#Username").val(ui.item.label);
return false;
},
source: function (request, response) {
$.ajax({
url: '@Url.Action("UserNameAutoComplete")',
data: request,
success: function (data) {
var ParsedObject = $.parseJSON(data);
response($.map(ParsedObject, function (item) {
return {
label: item.UserName,
value: item.UserId
};
}))
}
});
}
});
解决了这个问题。我不得不更改我的jquery代码。无需更改返回json字符串的代码
$("#Username").autocomplete({
select: function (e, ui) {
$("#Username").val(ui.item.label);
return false;
},
source: function (request, response) {
$.ajax({
url: '@Url.Action("UserNameAutoComplete")',
data: request,
success: function (data) {
var ParsedObject = $.parseJSON(data);
response($.map(ParsedObject, function (item) {
return {
label: item.UserName,
value: item.UserId
};
}))
}
});
}
});
System.Web.Script.Serialization.JavaScriptSerializer jSearializer=新的System.Web.Script.Serialization.JavaScriptSerializer();此classSystem.Web.Script.Serialization.JavaScriptSerializer的对象jSearializer=new System.Web.Script.Serialization.JavaScriptSerializer();这个类的对象