如何使用通过Model List发送的数据在javascript中填充数组

lea*_*ing 6 jquery razor asp.net-mvc-3

我的模型中有一个列表EmployeeList

在我的视图中,我想从EmployeeList(来自Model)填充数组,并将其用作标记的自动完成.似乎数组不是从列表中弹出,也不是自动完成工作.请帮忙.

View中的代码如下:

 <title>jQuery Autocomplete example</title>
<script type="text/javascript" src="../../scripts/jquery-1.2.6.js"></script>
<script type="text/javascript" src="../../scripts/jquery.autocomplete.js"></script>

<!-- Listing 14.3 -->
<script type="text/javascript">
    $(document).ready(function() {

    var employeeList = '@Model.EmployeeLis.toArray();'


        $("#tags").autocomplete({
            source: employeeList

        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

 <h1>Type your name here</h1>
<%= Html.TextBox("tags") %>
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 15

您可以使用JavaScriptSerializer类生成模型数组的JSON表示:

@using System.Web.Script.Serialization
<title>jQuery Autocomplete example</title>
<script type="text/javascript" src="@Url.Content("~/scripts/jquery-1.2.6.js")"></script>
<script type="text/javascript" src="@Url.Content("~/scripts/jquery.autocomplete.js")"></script>
<!-- Listing 14.3 -->
<script type="text/javascript">
    $(function() {
        var employeeList = @Html.Raw(new JavaScriptSerializer().Serialize(Model.EmployeeList));
        $('#tags').autocomplete({
            source: employeeList
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

还要注意我Url.Content在脚本包含中使用帮助程序的方式,以避免在部署应用程序时可能无法正常工作的硬编码URL.