返回 Json 对象不起作用,只返回字符串
本文关键字:返回 字符串 不起作用 Json 对象 | 更新日期: 2023-09-27 18:32:32
我正在尝试将 json 对象列表返回到视图,但它不喜欢它是一个对象,如果我返回字符串或字符串列表,它将起作用。但实际上我不需要视图中的整个对象,我真的只需要名称和 Id。如何更改此设置以将名称和匹配 ID 的列表返回到视图,然后将所有名称插入/更新到列表框中?任何帮助,不胜感激。:)
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult GetUserStories(int id)
{
var userstorylist = userRepository.Select().Where(x => x.EpicId.Equals(id)).ToList();
var userstorynames = userstorylist.Select(x => x.Name);
return Json(userstorynames, JsonRequestBehavior.AllowGet);
}
视图:
$.getJSON("/Estimate/GetUserStories", $.param({ id: selectedid }, true), function (result) {
$(".UserStoryListBoxClass").html("");
for (var item in result) {
$(".UserStoryListBoxClass").append($("<option>" + result[item] + "</option>"));
}
});
如果你json
结果是这样的
[{"Id": "1","Name": "Skeet"},{"Id": "2","Name": "Darin"}]
下面的代码将起作用,
$.getJSON("/Estimate/GetUserStories", $.param({ id: selectedid }, true), function (result) {
var items="";
$.each(result, function(index) {
items+="<option value="+result[index].Id+">" + result[index].Name+ "</option>";
});
$(".UserStoryListBoxClass").html(items);
});
工作样品 http://jsfiddle.net/CFdeW/14/
切勿在循环中使用append
方法将元素添加到下拉列表中。始终将其存储到变量中,并且仅调用 html 方法一次。
要返回带有 id 和名称的元组,您可以执行以下操作:
var userstorynames = userstorylist.Select(x => new { id = x.Id, name = x.Name }).ToList();