Как заполнить массив в JavaScript, используя данные, отправленные через список моделей - PullRequest
6 голосов
/ 21 марта 2011

В моей модели есть список EmployeeList

В моем представлении я хочу заполнить массив из EmployeeList (из модели) и использовать его в качестве автозаполнения для тегов.Кажется, что массив не заполняется из списка и не работает автозаполнение.Помогите пожалуйста.

Код в представлении выглядит следующим образом:

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

 <h1>Type your name here</h1>
<%= Html.TextBox("tags") %>

1 Ответ

15 голосов
/ 21 марта 2011

Вы можете использовать класс 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>

Также обратите внимание на то, как я использовал помощник Url.Content в сценарии.включения, чтобы избежать жесткого кодирования URL-адресов, которые могут не работать при развертывании приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...