使用c#将List转换为javascript数组

时间:2014-03-08 15:48:22

标签: c# jquery asp.net-mvc razor

我正在使用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数组?

2 个答案:

答案 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>