C# 从linq列表中选择阵列
我在从linQ列表中选择数组时遇到问题 数组通常用于某些静态数据- 现在,从上面的linq查询中,将有来自此列的名称。我想通过创建名称数组从上面的查询中选择名称。如何在此查询中为名称设置数组,就像它为基于静态的数据设置数组一样 编辑- 我已经从上面修改了这个方法,现在我可以在服务器端获取列表。但在json结果中,它给我留下了内部服务器错误500 剧本- 很简单:C# 从linq列表中选择阵列,c#,arrays,asp.net-mvc,linq,C#,Arrays,Asp.net Mvc,Linq,我在从linQ列表中选择数组时遇到问题 数组通常用于某些静态数据- 现在,从上面的linq查询中,将有来自此列的名称。我想通过创建名称数组从上面的查询中选择名称。如何在此查询中为名称设置数组,就像它为基于静态的数据设置数组一样 编辑- 我已经从上面修改了这个方法,现在我可以在服务器端获取列表。但在json结果中,它给我留下了内部服务器错误500 剧本- 很简单: var names = (from u in db.Contacts select new { Name =
var names = (from u in db.Contacts
select new { Name = u.Name}).ToArray();
试一试
试试:返回Jsonnames,JsonRequestBehavior.AllowGet;您能提供错误消息吗?@Grundy,序列化类型的对象时检测到循环引用。如果您只需要联系人姓名,最好使用select u.name而不是select u,在这种情况下也不应是循环的references@Grundy,那可能是我失踪的原因。很高兴它现在起作用了。
var names = (from u in db.Contacts
select u).ToList();
[HttpGet]
public JsonResult GetNames(string term)
{
var names = (from u in db.Contacts
where u.name.Contains(term)
select u).ToArray();
// A list of names to mimic results from a database
var results = names.Where(n =>
n.name.StartsWith(term, StringComparison.OrdinalIgnoreCase));
return new JsonResult()
{
Data = results.ToArray(),
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
<script type="text/javascript">
$(function () {
$('#typeahead').typeahead({
source: function (term, process) {
var url = '@Url.Content("~/Invoice/GetNames")';
return $.getJSON(url, { term: term }, function (data) {
alert(data);
return process(data);
});
}
});
})
</script>
var names = (from u in db.Contacts
select new { Name = u.Name}).ToArray();
var names = db.Contacts.Select(x => x.PROP_NAME).ToArray();