如何动态加载 selectize.js 电子邮件联系人选项
How to load selectize.js email contacts options dynamically
我正在使用 selectize.js 之类的电子邮件联系人。但是当我从数据库中获取邮件列表时,选择显示未定义。当我手动输入 return 值时,一切都很好。我该如何填充它?这是我的代码示例。
Return 值:
"[{"name":"Test User 1","id":"1"},{"name":"Test User 2","id":"2"}]"
C#
public JsonResult GetMails(){
var list = db.Members
.Where(x => x.IsActive == Status.Active)
.OrderBy(x => x.FullName)
.Select(c => new
{
name = c.FullName,
id = c.Id.ToString()
});
return Json(list, JsonRequestBehavior.AllowGet);
}
Javascript
<script type="text/javascript">
$(function () {
$.get("/mail/getmails", function (data) {
$("#MailReceivers").selectize({
persist: false,
plugins: ['remove_button'],
maxItems: null,
valueField: 'id',
labelField: 'name',
searchField: ['name', 'id'],
options: JSON.stringify(data),
create: function (input) {
return {name: input};
}
});
});
});
</script>
答案是先解析json再解析stringfy.
options: JSON.parse(JSON.stringify(data))
我正在使用 selectize.js 之类的电子邮件联系人。但是当我从数据库中获取邮件列表时,选择显示未定义。当我手动输入 return 值时,一切都很好。我该如何填充它?这是我的代码示例。
Return 值:
"[{"name":"Test User 1","id":"1"},{"name":"Test User 2","id":"2"}]"
C#
public JsonResult GetMails(){
var list = db.Members
.Where(x => x.IsActive == Status.Active)
.OrderBy(x => x.FullName)
.Select(c => new
{
name = c.FullName,
id = c.Id.ToString()
});
return Json(list, JsonRequestBehavior.AllowGet);
}
Javascript
<script type="text/javascript">
$(function () {
$.get("/mail/getmails", function (data) {
$("#MailReceivers").selectize({
persist: false,
plugins: ['remove_button'],
maxItems: null,
valueField: 'id',
labelField: 'name',
searchField: ['name', 'id'],
options: JSON.stringify(data),
create: function (input) {
return {name: input};
}
});
});
});
</script>
答案是先解析json再解析stringfy.
options: JSON.parse(JSON.stringify(data))