我正在使用jQuery自动完成功能,其中值将存储在java脚本数组中。我创建了一个函数,该函数提供包含user_id和user_name的对象的列表。如何将其转换为数组。
public class DocModel
{
[Required]
public String dr_name { get; set; }
[Required]
public int dr_id { get; set; }
public List<DocModel> GetUser()
{
SqlDataReader sdr = DataAccess.DataAccess.getAllDoctorNames();
List<AECS1.Models.DocModel> DocList = new List<Models.DocModel>();
Models.DocModel Doc;
if (sdr.HasRows)
{
while (sdr.Read())
{
Doc = new Models.DocModel();
Doc.dr_id = (int)sdr["dr_id"];
Doc.dr_name = (string)sdr["dr_name"];
DocList.Add(Doc);
}
}
return DocList;
}
}
这是视图页面:
$(function () {
var docdata = [];
$("#tags").autocomplete({
source: docdata
});
});
如何填写此docdata数组?
答案 0 :(得分:1)
为您的模型添加一个名为ToJSON&amp;的方法。使用JavaScript转换器 - 无论是内置的还是更好的,JSON.net one&amp;让此方法返回表示数组的json编码字符串。
<script>
var docdata = @Model.ToJson();
</script>
如果您不喜欢在模型中使用该方法,请在填充模型时执行JSON转换。
答案 1 :(得分:0)
将DocModels传递给模型。
@model IEnumerable<DocModel>
然后
<script>
var docdata = [
@foreach(var item in Model)
{
@: '@item.dr_name',
}
];
</script>